summaryrefslogtreecommitdiff
path: root/main/netsock2.c
diff options
context:
space:
mode:
authorMichael L. Young <elgueromexicano@gmail.com>2012-06-20 02:07:00 +0000
committerMichael L. Young <elgueromexicano@gmail.com>2012-06-20 02:07:00 +0000
commitc843dddf804380bc2b42a10c3077a7664f7ec443 (patch)
tree645344879e1b89e4e814f5ee84fe2dd767b496ab /main/netsock2.c
parent2428e19436fad0829539187b50d27d36f277cc01 (diff)
Fix NULL pointer segfault in ast_sockaddr_parse()
While working with ast_parse_arg() to perform a validity check, a segfault occurred. The segfault occurred due to passing a NULL pointer to ast_sockaddr_parse() from ast_parse_arg(). According to the documentation in config.h, "result pointer to the result. NULL is valid here, and can be used to perform only the validity checks." This patch fixes the segfault by checking for a NULL pointer. This patch also adds documentation to netsock2.h about why it is necessary to check for a NULL pointer. (Closes issue ASTERISK-20006) Reported by: Michael L. Young Tested by: Michael L. Young Patches: asterisk-20006-netsock-null-ptr.diff uploaded by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/1990/ ........ Merged revisions 369108 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 369109 from http://svn.asterisk.org/svn/asterisk/branches/10 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@369110 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/netsock2.c')
-rw-r--r--main/netsock2.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/main/netsock2.c b/main/netsock2.c
index 59ae44175..aa5e17d9e 100644
--- a/main/netsock2.c
+++ b/main/netsock2.c
@@ -235,8 +235,10 @@ int ast_sockaddr_parse(struct ast_sockaddr *addr, const char *str, int flags)
"addresses. Ignoring all but the first.\n");
}
- addr->len = res->ai_addrlen;
- memcpy(&addr->ss, res->ai_addr, addr->len);
+ if (addr) {
+ addr->len = res->ai_addrlen;
+ memcpy(&addr->ss, res->ai_addr, addr->len);
+ }
freeaddrinfo(res);