coverity fixes

This commit is contained in:
Andy Green 2017-09-23 13:27:11 +08:00
parent c52a6267ab
commit 49f8029677
4 changed files with 38 additions and 23 deletions

View file

@ -374,8 +374,10 @@ lws_callback_http_dummy(struct lws *wsi, enum lws_callback_reasons reason,
lws_callback_on_writable(wsi);
break;
case LWS_STDERR:
n = read(lws_get_socket_fd(args->stdwsi[LWS_STDERR]),
buf, sizeof(buf) - 2);
n = lws_get_socket_fd(args->stdwsi[LWS_STDERR]);
if (n < 0)
break;
n = read(n, buf, sizeof(buf) - 2);
if (n > 0) {
if (buf[n - 1] != '\n')
buf[n++] = '\n';
@ -403,8 +405,10 @@ lws_callback_http_dummy(struct lws *wsi, enum lws_callback_reasons reason,
case LWS_CALLBACK_CGI_STDIN_DATA: /* POST body for stdin */
args = (struct lws_cgi_args *)in;
args->data[args->len] = '\0';
n = write(lws_get_socket_fd(args->stdwsi[LWS_STDIN]),
args->data, args->len);
n = lws_get_socket_fd(args->stdwsi[LWS_STDIN]);
if (n < 0)
return -1;
n = write(n, args->data, args->len);
if (n < args->len)
lwsl_notice("LWS_CALLBACK_CGI_STDIN_DATA: "
"sent %d only %d went", n, args->len);

View file

@ -1450,10 +1450,11 @@ lws_set_socks(struct lws_vhost *vhost, const char *socks)
lwsl_err("Socks password too long\n");
goto bail;
}
strncpy(vhost->socks_user, socks, p_colon - socks);
strncpy(vhost->socks_password, p_colon + 1,
p_at - (p_colon + 1));
}
strncpy(vhost->socks_user, socks, p_colon - socks);
strncpy(vhost->socks_password, p_colon + 1,
p_at - (p_colon + 1));
lwsl_info(" Socks auth, user: %s, password: %s\n",
vhost->socks_user, vhost->socks_password );
@ -2581,8 +2582,8 @@ lws_cgi(struct lws *wsi, const char * const *exec_array, int script_uri_path_len
if (script_uri_path_len < 0 && uritok < 0)
goto bail3;
if (script_uri_path_len < 0)
uritok = 0;
// if (script_uri_path_len < 0)
// uritok = 0;
lws_snprintf(cgi_path, sizeof(cgi_path) - 1, "REQUEST_URI=%s",
lws_hdr_simple_ptr(wsi, uritok));
@ -2905,7 +2906,10 @@ lws_cgi_write_split_stdout_headers(struct lws *wsi)
}
}
n = read(lws_get_socket_fd(wsi->cgi->stdwsi[LWS_STDOUT]), &c, 1);
n = lws_get_socket_fd(wsi->cgi->stdwsi[LWS_STDOUT]);
if (n < 0)
return -1;
n = read(n, &c, 1);
if (n < 0) {
if (errno != EAGAIN) {
lwsl_debug("%s: read says %d\n", __func__, n);
@ -3033,9 +3037,10 @@ lws_cgi_write_split_stdout_headers(struct lws *wsi)
/* payload processing */
m = !wsi->cgi->explicitly_chunked && !wsi->cgi->content_length;
n = read(lws_get_socket_fd(wsi->cgi->stdwsi[LWS_STDOUT]),
start, sizeof(buf) - LWS_PRE - (m ? LWS_HTTP_CHUNK_HDR_SIZE : 0));
n = lws_get_socket_fd(wsi->cgi->stdwsi[LWS_STDOUT]);
if (n < 0)
return -1;
n = read(n, start, sizeof(buf) - LWS_PRE - (m ? LWS_HTTP_CHUNK_HDR_SIZE : 0));
if (n < 0 && errno != EAGAIN) {
lwsl_debug("%s: stdout read says %d\n", __func__, n);

View file

@ -367,7 +367,7 @@ int lws_header_table_detach(struct lws *wsi, int autoservice)
#if defined(LWS_WITH_PEER_LIMITS)
else
if (!(*pwsi)->u.hdr.ah_wait_list)
lws_stats_atomic_bump(wsi->context, pt,
lws_stats_atomic_bump(context, pt,
LWSSTATS_C_PEER_LIMIT_AH_DENIED, 1);
#endif
pwsi = &(*pwsi)->u.hdr.ah_wait_list;

View file

@ -775,11 +775,14 @@ lws_prepare_access_log_info(struct lws *wsi, char *uri_ptr, int meth)
l = lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_USER_AGENT);
if (l) {
wsi->access_log.user_agent = lws_malloc(l + 2);
if (wsi->access_log.user_agent)
lws_hdr_copy(wsi, wsi->access_log.user_agent,
l + 1, WSI_TOKEN_HTTP_USER_AGENT);
else
if (!wsi->access_log.user_agent) {
lwsl_err("OOM getting user agent\n");
lws_free_set_NULL(wsi->access_log.header_log);
return;
}
lws_hdr_copy(wsi, wsi->access_log.user_agent,
l + 1, WSI_TOKEN_HTTP_USER_AGENT);
for (m = 0; m < l; m++)
if (wsi->access_log.user_agent[m] == '\"')
@ -788,11 +791,14 @@ lws_prepare_access_log_info(struct lws *wsi, char *uri_ptr, int meth)
l = lws_hdr_total_length(wsi, WSI_TOKEN_HTTP_REFERER);
if (l) {
wsi->access_log.referrer = lws_malloc(l + 2);
if (wsi->access_log.referrer)
lws_hdr_copy(wsi, wsi->access_log.referrer,
l + 1, WSI_TOKEN_HTTP_REFERER);
else
if (!wsi->access_log.referrer) {
lwsl_err("OOM getting user agent\n");
lws_free_set_NULL(wsi->access_log.user_agent);
lws_free_set_NULL(wsi->access_log.header_log);
return;
}
lws_hdr_copy(wsi, wsi->access_log.referrer,
l + 1, WSI_TOKEN_HTTP_REFERER);
for (m = 0; m < l; m++)
if (wsi->access_log.referrer[m] == '\"')
@ -1835,7 +1841,7 @@ lws_get_or_create_peer(struct lws_vhost *vhost, lws_sockfd_type sockfd)
if (af == AF_INET) {
struct sockaddr_in *s = (struct sockaddr_in *)&addr;
q = &s->sin_addr;
rlen = sizeof(&s->sin_addr);
rlen = sizeof(s->sin_addr);
} else
#ifdef LWS_USE_IPV6
{