dect
/
asterisk
Archived
13
0
Fork 0

Merged revisions 228338 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r228338 | dvossel | 2009-11-06 09:41:41 -0600 (Fri, 06 Nov 2009) | 5 lines
  
  fixes crash in astfd.c
  
  (closes issue #15981)
  Reported by: slavon
........


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@228339 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
dvossel 2009-11-06 15:42:46 +00:00
parent 28ddf191c6
commit b952f6794d
1 changed files with 9 additions and 4 deletions

View File

@ -130,15 +130,16 @@ int __ast_fdleak_pipe(int *fds, const char *file, int line, const char *func)
#undef socket
int __ast_fdleak_socket(int domain, int type, int protocol, const char *file, int line, const char *func)
{
char sdomain[20], stype[20], *sproto;
char sdomain[20], stype[20], *sproto = NULL;
struct protoent *pe;
int res = socket(domain, type, protocol);
if (res < 0 || res > 1023) {
return res;
}
pe = getprotobynumber(protocol);
sproto = pe->p_name;
if ((pe = getprotobynumber(protocol))) {
sproto = pe->p_name;
}
if (domain == PF_UNIX) {
ast_copy_string(sdomain, "PF_UNIX", sizeof(sdomain));
@ -162,7 +163,11 @@ int __ast_fdleak_socket(int domain, int type, int protocol, const char *file, in
snprintf(stype, sizeof(stype), "%d", type);
}
STORE_COMMON(res, "socket", "%s,%s,\"%s\"", sdomain, stype, sproto);
if (sproto) {
STORE_COMMON(res, "socket", "%s,%s,\"%s\"", sdomain, stype, sproto);
} else {
STORE_COMMON(res, "socket", "%s,%s,\"%d\"", sdomain, stype, protocol);
}
return res;
}