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
/\

Reply via email to