[asterisk-dev] any difference between NULL and "" in struct ast_callerid fields ?

Luigi Rizzo rizzo at icir.org
Fri Apr 21 04:02:49 MST 2006


given the lack of feedback, I have started to fix the issues
described below.

As it is now, the code maps NULL or "" into three different values,
not in a completely consistent way:

	""
	"unknown"
	"<unknown>"

what is the correct format ?

	luigi

On Tue, Apr 18, 2006 at 09:50:59AM -0700, Luigi Rizzo wrote:
> hi,
> browsing throughout the code, i see that some places map
> a NULL value in the struct ast_callerid fields to "<unknown>"
> or similar string, but the empty string is left alone.
> 
> However, i am not so sure that the behaviour is
> consistent across the whole code, and especially,
> i cannot see a reason why the empty string "" should
> be treated differently from NULL.
> 
> In many other places in asterisk, NULL and "" are considered the
> same thing and we have plenty of utility functions code that assume
> that.
> 
> The reason is for this behaviour is an important one:
> 
>     we have both dynamically and statically allocated strings, and the
>     latter cannot store NULL and must represent it as an empty string.
> 
> So, even if parts of the code that handle the CID fields
> make use of the difference between NULL and "", there is a
> huge risk that this difference is lost when passing values
> around between different types of buffers.
> 
> As a consequence, unless there are convincing explaination
> on why we need to differentiate that, I am going to add
> comments, in include/asterisk/channel.h, that in the ast_callerid
> fields, NULL and "" are considered equivalent, and then start
> making the code consistent with the above spec.
> 
> comments welcome.
> 
> 	cheers
> 	luigi
> _______________________________________________
> --Bandwidth and Colocation provided by Easynews.com --
> 
> asterisk-dev mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-dev



More information about the asterisk-dev mailing list