Unmangled diff: http://pastebin.com/p9Qi9rZX
On Mon, May 25, 2015 at 4:24 PM, sven falempin <sven.falem...@gmail.com> wrote: > > > 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 > /\ > -- --------------------------------------------------------------------------------------------------------------------- () ascii ribbon campaign - against html e-mail /\