On Mon, May 25, 2015 at 2:55 PM, Gleydson Soares <gsoa...@gmail.com> wrote: > > > your diff is incomplete... > well, why just this occurrence? there is others check null before > free(3) in same file. > > and please, be more specific adding more details about your changes: eg.: > (I am removing the null check here, because free(3) itself already > check against null). >
Index: config.c =================================================================== RCS file: /cvs/src/usr.sbin/./relayd/config.c,v retrieving revision 1.25 diff -u -p -r1.25 config.c --- config.c 2 May 2015 13:15:24 -0000 1.25 +++ config.c 25 May 2015 20:18:34 -0000 @@ -178,10 +178,8 @@ config_purge(struct relayd *env, u_int r if (what & CONFIG_PROTOS && env->sc_protos != NULL) { while ((proto = TAILQ_FIRST(env->sc_protos)) != NULL) { TAILQ_REMOVE(env->sc_protos, proto, entry); - if (proto->style != NULL) - free(proto->style); - if (proto->tlscapass != NULL) - free(proto->tlscapass); + free(proto->style); + free(proto->tlscapass); free(proto); } env->sc_protocount = 0; @@ -949,12 +947,9 @@ config_getrelay(struct relayd *env, stru return (0); fail: - if (rlay->rl_tls_cert) - free(rlay->rl_tls_cert); - if (rlay->rl_tls_key) - free(rlay->rl_tls_key); - if (rlay->rl_tls_ca) - free(rlay->rl_tls_ca); + free(rlay->rl_tls_cert); + free(rlay->rl_tls_key); + free(rlay->rl_tls_ca); close(rlay->rl_s); free(rlay); return (-1); @@ -998,7 +993,6 @@ config_getrelaytable(struct relayd *env, return (0); fail: - if (rlt != NULL) - free(rlt); + free(rlt); return (-1); } Index: parse.y =================================================================== RCS file: /cvs/src/usr.sbin/./relayd/parse.y,v retrieving revision 1.204 diff -u -p -r1.204 parse.y --- parse.y 2 May 2015 13:15:24 -0000 1.204 +++ parse.y 25 May 2015 20:18:34 -0000 @@ -1275,8 +1275,7 @@ ruleopts : METHOD STRING { rule->rule_kv[keytype].kv_value == NULL) fatal("out of memory"); free($3); - if ($4) - free($4); + free($4); rule->rule_kv[keytype].kv_type = keytype; } | COOKIE key_option { @@ -1296,8 +1295,7 @@ ruleopts : METHOD STRING { rule->rule_kv[keytype].kv_value == NULL) fatal("out of memory"); free($3); - if ($4) - free($4); + free($4); rule->rule_kv[keytype].kv_type = keytype; } | HEADER key_option { @@ -1315,8 +1313,7 @@ ruleopts : METHOD STRING { rule->rule_kv[keytype].kv_value == NULL) fatal("out of memory"); free($3); - if ($4) - free($4); + free($4); rule->rule_kv[keytype].kv_type = keytype; } | PATH key_option { @@ -1332,8 +1329,7 @@ ruleopts : METHOD STRING { yyerror("combining query type and the given " "option is not supported"); free($3); - if ($4) - free($4); + free($4); YYERROR; break; } @@ -1346,8 +1342,7 @@ ruleopts : METHOD STRING { rule->rule_kv[keytype].kv_value == NULL) fatal("out of memory"); free($3); - if ($4) - free($4); + free($4); rule->rule_kv[keytype].kv_type = keytype; } | QUERYSTR key_option { @@ -1386,8 +1381,7 @@ ruleopts : METHOD STRING { rule->rule_kv[keytype].kv_value == NULL) fatal("out of memory"); free($3.digest); - if ($4) - free($4); + free($4); rule->rule_kv[keytype].kv_type = keytype; } | URL key_option { Index: relay.c =================================================================== RCS file: /cvs/src/usr.sbin/./relayd/relay.c,v retrieving revision 1.194 diff -u -p -r1.194 relay.c --- relay.c 18 May 2015 16:57:20 -0000 1.194 +++ relay.c 25 May 2015 20:18:34 -0000 @@ -1616,15 +1616,13 @@ relay_close(struct rsession *con, const con->se_tag != 0 ? tag_id2name(con->se_tag) : "0", ibuf, obuf, ntohs(con->se_out.port), msg, ptr == NULL ? "" : ",", ptr == NULL ? "" : ptr); - if (ptr != NULL) - free(ptr); + free(ptr); } if (proto->close != NULL) (*proto->close)(con); - if (con->se_priv != NULL) - free(con->se_priv); + free(con->se_priv); if (con->se_in.bev != NULL) bufferevent_free(con->se_in.bev); else if (con->se_in.output != NULL) @@ -1649,8 +1647,7 @@ relay_close(struct rsession *con, const __func__, relay_inflight); } } - if (con->se_in.buf != NULL) - free(con->se_in.buf); + free(con->se_in.buf); if (con->se_out.bev != NULL) bufferevent_free(con->se_out.bev); @@ -1674,8 +1671,7 @@ relay_close(struct rsession *con, const } } - if (con->se_out.buf != NULL) - free(con->se_out.buf); + free(con->se_out.buf); if (con->se_log != NULL) evbuffer_free(con->se_log); @@ -2612,8 +2608,7 @@ relay_load_file(const char *name, off_t return (buf); fail: - if (buf != NULL) - free(buf); + free(buf); close(fd); return (NULL); } Index: relay_http.c =================================================================== RCS file: /cvs/src/usr.sbin/./relayd/relay_http.c,v retrieving revision 1.47 diff -u -p -r1.47 relay_http.c --- relay_http.c 22 May 2015 01:34:13 -0000 1.47 +++ relay_http.c 25 May 2015 20:18:34 -0000 @@ -602,8 +602,7 @@ relay_read_httpchunks(struct bufferevent case 0: /* Chunk is terminated by an empty newline */ line = evbuffer_readline(src); - if (line != NULL) - free(line); + free(line); if (relay_bufferevent_print(cre->dst, "\r\n") == -1) goto fail; cre->toread = TOREAD_HTTP_CHUNK_LENGTH; @@ -687,8 +686,7 @@ _relay_lookup_url(struct ctl_relay_event ret = RES_PASS; fail: - if (md != NULL) - free(md); + free(md); free(val); return (ret); } Index: relay_udp.c =================================================================== RCS file: /cvs/src/usr.sbin/./relayd/relay_udp.c,v retrieving revision 1.39 diff -u -p -r1.39 relay_udp.c --- relay_udp.c 22 Jan 2015 17:42:09 -0000 1.39 +++ relay_udp.c 25 May 2015 20:18:34 -0000 @@ -191,8 +191,7 @@ relay_udp_response(int fd, short sig, vo return; relay_close(con, "unknown response"); - if (priv != NULL) - free(priv); + free(priv); } void @@ -290,8 +289,7 @@ relay_udp_server(int fd, short sig, void /* Save the received data */ if (evbuffer_add(con->se_out.output, buf, len) == -1) { relay_close(con, "failed to store buffer"); - if (cnl != NULL) - free(cnl); + free(cnl); return; } Index: relayd.c =================================================================== RCS file: /cvs/src/usr.sbin/./relayd/relayd.c,v retrieving revision 1.139 diff -u -p -r1.139 relayd.c --- relayd.c 2 May 2015 13:15:24 -0000 1.139 +++ relayd.c 25 May 2015 20:18:34 -0000 @@ -447,8 +447,7 @@ parent_dispatch_pfe(int fd, struct privs if (IMSG_DATA_SIZE(imsg) > 0) str = get_string(imsg->data, IMSG_DATA_SIZE(imsg)); parent_reload(env, CONFIG_RELOAD, str); - if (str != NULL) - free(str); + free(str); break; case IMSG_CTL_SHUTDOWN: parent_shutdown(env); @@ -563,8 +562,7 @@ purge_table(struct relayd *env, struct t SSL_free(host->cte.ssl); free(host); } - if (table->sendbuf != NULL) - free(table->sendbuf); + free(table->sendbuf); if (table->conf.flags & F_TLS) SSL_CTX_free(table->ssl_ctx); @@ -693,8 +691,7 @@ kv_set(struct kv *kv, char *fmt, ...) } /* Set the new value */ - if (kv->kv_value != NULL) - free(kv->kv_value); + free(kv->kv_value); kv->kv_value = value; return (0); @@ -711,8 +708,7 @@ kv_setkey(struct kv *kv, char *fmt, ...) return (-1); va_end(ap); - if (kv->kv_key != NULL) - free(kv->kv_key); + free(kv->kv_key); kv->kv_key = key; return (0); @@ -769,13 +765,9 @@ kv_free(struct kv *kv) { if (kv->kv_type == KEY_TYPE_NONE) return; - if (kv->kv_key != NULL) { - free(kv->kv_key); - } + free(kv->kv_key); kv->kv_key = NULL; - if (kv->kv_value != NULL) { - free(kv->kv_value); - } + free(kv->kv_value); kv->kv_value = NULL; kv->kv_matchtree = NULL; kv->kv_match = NULL; @@ -929,8 +921,7 @@ rule_add(struct protocol *proto, struct kv = &r->rule_kv[i]; if (kv->kv_type != i) continue; - if (kv->kv_key != NULL) - free(kv->kv_key); + free(kv->kv_key); if ((kv->kv_key = strdup(buf)) == NULL) { rule_free(r); free(r); Also , but more questionable: Index: relay_http.c =================================================================== RCS file: /cvs/src/usr.sbin/./relayd/relay_http.c,v retrieving revision 1.47 diff -u -p -r1.47 relay_http.c --- relay_http.c 22 May 2015 01:34:13 -0000 1.47 +++ relay_http.c 25 May 2015 20:23:58 -0000 @@ -128,28 +128,13 @@ relay_httpdesc_init(struct ctl_relay_eve void relay_httpdesc_free(struct http_descriptor *desc) { - if (desc->http_path != NULL) { - free(desc->http_path); - desc->http_path = NULL; - } - if (desc->http_query != NULL) { - free(desc->http_query); - desc->http_query = NULL; - } - if (desc->http_version != NULL) { - free(desc->http_version); - desc->http_version = NULL; - } - if (desc->query_key != NULL) { - free(desc->query_key); - desc->query_key = NULL; - } - if (desc->query_val != NULL) { - free(desc->query_val); - desc->query_val = NULL; - } + free(desc->http_path); + free(desc->http_query); + free(desc->http_version); + free(desc->query_key); + free(desc->query_val); kv_purge(&desc->http_headers); - desc->http_lastheader = NULL; + bzero(desc,sizeof(*desc)); } -- --------------------------------------------------------------------------------------------------------------------- () ascii ribbon campaign - against html e-mail /\