Blank callerid and NULL callerid should not compare equal.
authorTilghman Lesher <tilghman@meg.abyt.es>
Tue, 12 Jan 2010 19:58:00 +0000 (19:58 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Tue, 12 Jan 2010 19:58:00 +0000 (19:58 +0000)
The second is the default state for matching CID in the dialplan (no matching)
while the first matches one particular CallerID.  This is a regression.
(fixes AST-314, SWP-611)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@239571 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/pbx.c

index ed14a65..e06577e 100644 (file)
@@ -8003,7 +8003,9 @@ static int ast_add_extension2_lockopt(struct ast_context *con,
        p += ext_strncpy(p, extension, strlen(extension) + 1) + 1;
        tmp->priority = priority;
        tmp->cidmatch = p;      /* but use p for assignments below */
-       if (!ast_strlen_zero(callerid)) {
+
+       /* Blank callerid and NULL callerid are two SEPARATE things.  Do NOT confuse the two!!! */
+       if (callerid) {
                p += ext_strncpy(p, callerid, strlen(callerid) + 1) + 1;
                tmp->matchcid = 1;
        } else {