[Home]

Summary:ASTERISK-11633: EXTEN gets printf-transformed when written to the logs
Reporter:Steve Davies . (stevedavies)Labels:
Date Opened:2008-03-13 09:57:57Date Closed:2008-03-18 10:21:06
Priority:MinorRegression?No
Status:Closed/CompleteComponents:General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:> [Mar 13 16:42:46] VERBOSE[14099] logger.c: [Mar 13 16:42:46]     -- Executing [cIAX20.000000ctelpbx-10.0000005160@from-peer-voipconnect-internal:1] Set("IAX2/voipconnect_j1-24", "ds=IAX2/ctelpbx-1/5160") in new
stack

What is that crazy extension number?  It should say cIAX2%2fctelpbx-1%2f5160 (which, I admit, is pretty odd too - its a URIENCODE()d channel address).

Looks like the log messages gets used as the "format" side of another printf, or something like that, and the %2f gets taken as a float format specifier.

Steve

Comments:By: Russell Bryant (russell) 2008-03-13 10:30:34

Thanks for the report.  This is actually a security vulnerability.  Luckily, it only affects trunk ...

You just have to change

   ast_log(LOG_VERBOSE, logmsg->str);

to
   ast_log(LOG_VERBOSE, "%s", logmsg->str);

in ast_verbose() in main/logger.c.

By: Joshua C. Colp (jcolp) 2008-03-18 10:21:05

Fixed in trunk as of revision 109396 and 1.6.0 as of revision 109398.