diff options
author | dvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-11-06 15:44:04 +0000 |
---|---|---|
committer | dvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-11-06 15:44:04 +0000 |
commit | bdf0f46ac7d1fc8263c028d5fd2e0fcaf425aeef (patch) | |
tree | fed70c02d7bbcf1d47ef8603e6f2ade7ef367e27 /main | |
parent | f7822f934b78f8282f273a42710ef480452f3878 (diff) |
Merged revisions 228339 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
................
r228339 | dvossel | 2009-11-06 09:42:46 -0600 (Fri, 06 Nov 2009) | 12 lines
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/branches/1.6.1@228341 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main')
-rw-r--r-- | main/astfd.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/main/astfd.c b/main/astfd.c index 6a9f70e42..90ded390f 100644 --- a/main/astfd.c +++ b/main/astfd.c @@ -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; } |