[asterisk-bugs] [Asterisk 0015392]: [patch] 1.6.1.1: Memory handling error in main/pbx.c (pbx_extension_helper)
Asterisk Bug Tracker
noreply at bugs.digium.com
Sun Jul 12 20:56:29 CDT 2009
A NOTE has been added to this issue.
======================================================================
https://issues.asterisk.org/view.php?id=15392
======================================================================
Reported By: yrashk
Assigned To:
======================================================================
Project: Asterisk
Issue ID: 15392
Category: PBX/General
Reproducibility: always
Severity: block
Priority: normal
Status: new
Asterisk Version: 1.6.1.1
Regression: No
SVN Branch (only for SVN checkouts, not tarball releases): N/A
SVN Revision (number only!):
Request Review:
======================================================================
Date Submitted: 2009-06-24 19:25 CDT
Last Modified: 2009-07-12 20:56 CDT
======================================================================
Summary: [patch] 1.6.1.1: Memory handling error in main/pbx.c
(pbx_extension_helper)
Description:
Due to Solaris x64 specifics, it won't accept NULLs as string. I think
Asterisk had similar problems before, and apparently it is still doing this
in some places. I found one of them today, since it was blocking asterisk
to start.
Basically, asterisk was segfaulting on every start, on the strlen()
routine.
Attached you can find gdb analysis on a core dumped and a patch that
solves this problem
======================================================================
----------------------------------------------------------------------
(0107625) snuffy (manager) - 2009-07-12 20:56
https://issues.asterisk.org/view.php?id=15392#c107625
----------------------------------------------------------------------
Yes yrashk your right.
Solaris / OpenSolaris does not support NULL to printf.
I did a very small example program and found that strlen does not cause
issue.
See below:
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char **argv)
{
char *a = "stuff";
char *b = "";
char *c = NULL;
if (argc == 2)
printf("a:%s,b:%s,c:%s",a,b,c);
else
strlen(c);
return 0;
}
Issue History
Date Modified Username Field Change
======================================================================
2009-07-12 20:56 snuffy Note Added: 0107625
======================================================================
More information about the asterisk-bugs
mailing list