X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;f=jbsockets.c;h=3ffe734159caf6a5a6bf631de91301d97caf1a46;hb=0114396acb2bab4918dbdf9b8f68b6e21703b2fd;hp=2a669ccd959330bb99fea6181acc40fe9188f145;hpb=484c53d05cfe647a9a10981ba45e9579e33dcfe8;p=privoxy.git diff --git a/jbsockets.c b/jbsockets.c index 2a669ccd..3ffe7341 100644 --- a/jbsockets.c +++ b/jbsockets.c @@ -1,4 +1,4 @@ -const char jbsockets_rcs[] = "$Id: jbsockets.c,v 1.60 2009/05/28 17:07:42 fabiankeil Exp $"; +const char jbsockets_rcs[] = "$Id: jbsockets.c,v 1.63 2009/06/13 11:32:52 fabiankeil Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/jbsockets.c,v $ @@ -103,6 +103,11 @@ const char jbsockets_rcs[] = "$Id: jbsockets.c,v 1.60 2009/05/28 17:07:42 fabian #include "errlog.h" #include "miscutil.h" +/* Mac OSX doesn't define AI_NUMERICSESRV */ +#ifndef AI_NUMERICSERV +#define AI_NUMERICSERV 0 +#endif + const char jbsockets_h_rcs[] = JBSOCKETS_H_VERSION; /* @@ -191,6 +196,12 @@ jb_socket connect_to(const char *host, int portnum, struct client_state *csp) #endif /* def FEATURE_ACL */ csp->http->host_ip_addr_str = malloc(NI_MAXHOST); + if (NULL == csp->http->host_ip_addr_str) + { + log_error(LOG_LEVEL_ERROR, + "Out of memory while getting the server IP address."); + return JB_INVALID_SOCKET; + } retval = getnameinfo(rp->ai_addr, rp->ai_addrlen, csp->http->host_ip_addr_str, NI_MAXHOST, NULL, 0, NI_NUMERICHOST); if (!csp->http->host_ip_addr_str || retval) @@ -893,6 +904,12 @@ void get_host_information(jb_socket afd, char **ip_address, char **hostname) } #ifdef HAVE_RFC2553 *ip_address = malloc(NI_MAXHOST); + if (NULL == *ip_address) + { + log_error(LOG_LEVEL_ERROR, + "Out of memory while getting the client's IP address."); + return; + } retval = getnameinfo((struct sockaddr *) &server, s_length, *ip_address, NI_MAXHOST, NULL, 0, NI_NUMERICHOST); if (retval) @@ -916,6 +933,12 @@ void get_host_information(jb_socket afd, char **ip_address, char **hostname) #ifdef HAVE_RFC2553 *hostname = malloc(NI_MAXHOST); + if (NULL == *hostname) + { + log_error(LOG_LEVEL_ERROR, + "Out of memory while getting the client's hostname."); + return; + } retval = getnameinfo((struct sockaddr *) &server, s_length, *hostname, NI_MAXHOST, NULL, 0, NI_NAMEREQD); if (retval) @@ -1024,6 +1047,12 @@ int accept_connection(struct client_state * csp, jb_socket fd) csp->cfd = afd; #ifdef HAVE_RFC2553 csp->ip_addr_str = malloc(NI_MAXHOST); + if (NULL == csp->ip_addr_str) + { + log_error(LOG_LEVEL_ERROR, + "Out of memory while getting the client's IP address."); + return 0; + } retval = getnameinfo((struct sockaddr *) &client, c_length, csp->ip_addr_str, NI_MAXHOST, NULL, 0, NI_NUMERICHOST); if (!csp->ip_addr_str || retval)