X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=jbsockets.c;h=187fbc4ddbf940079063d156a556cc81fdb111a9;hp=c1a40809c4dba6f303512925f97dd7e96fe821fe;hb=f8dbc81f51ddf04121644ad5da727f94f3ad11a5;hpb=afac6cca62fd37496b45e002c6c18da532e001ef diff --git a/jbsockets.c b/jbsockets.c index c1a40809..187fbc4d 100644 --- a/jbsockets.c +++ b/jbsockets.c @@ -1,4 +1,4 @@ -const char jbsockets_rcs[] = "$Id: jbsockets.c,v 1.135 2016/01/16 12:33:35 fabiankeil Exp $"; +const char jbsockets_rcs[] = "$Id: jbsockets.c,v 1.138 2016/09/27 22:48:28 ler762 Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/jbsockets.c,v $ @@ -50,6 +50,7 @@ const char jbsockets_rcs[] = "$Id: jbsockets.c,v 1.135 2016/01/16 12:33:35 fabia #ifndef STRICT #define STRICT #endif +#include #include #include #include @@ -593,6 +594,14 @@ int write_socket(jb_socket fd, const char *buf, size_t len) return 0; } +#ifdef FUZZ + if (!daemon_mode && fd <= 3) + { + log_error(LOG_LEVEL_WRITING, "Pretending to write to socket %d: %N", fd, len, buf); + return 0; + } +#endif + log_error(LOG_LEVEL_WRITING, "to socket %d: %N", fd, len, buf); #if defined(_WIN32) @@ -1221,6 +1230,7 @@ int accept_connection(struct client_state * csp, jb_socket fds[]) int max_selected_socket; fd_set selected_fds; jb_socket fd; + const char *host_addr; size_t listen_addr_size; c_length = sizeof(client); @@ -1355,16 +1365,17 @@ int accept_connection(struct client_state * csp, jb_socket fds[]) * The string needs space for strlen(...) + 7 characters: * strlen(haddr[i]) + 1 (':') + 5 (port digits) + 1 ('\0') */ - listen_addr_size = strlen(csp->config->haddr[i]) + 7; + host_addr = (csp->config->haddr[i] != NULL) ? csp->config->haddr[i] : ""; + listen_addr_size = strlen(host_addr) + 7; csp->listen_addr_str = malloc_or_die(listen_addr_size); retval = snprintf(csp->listen_addr_str, listen_addr_size, - "%s:%d", csp->config->haddr[i], csp->config->hport[i]); + "%s:%d", host_addr, csp->config->hport[i]); if ((-1 == retval) || listen_addr_size <= retval) { log_error(LOG_LEVEL_ERROR, "Server name (%s) and port number (%d) ASCII decimal representation" "don't fit into %d bytes", - csp->config->haddr[i], csp->config->hport[i], listen_addr_size); + host_addr, csp->config->hport[i], listen_addr_size); return 0; }