table_fetch() always expect a valid dst pointer.
authoreric <eric@openbsd.org>
Thu, 27 Dec 2018 15:04:59 +0000 (15:04 +0000)
committereric <eric@openbsd.org>
Thu, 27 Dec 2018 15:04:59 +0000 (15:04 +0000)
ok gilles@

usr.sbin/smtpd/table.c
usr.sbin/smtpd/table_db.c
usr.sbin/smtpd/table_static.c

index f43e529..397d850 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: table.c,v 1.42 2018/12/27 14:23:41 eric Exp $ */
+/*     $OpenBSD: table.c,v 1.43 2018/12/27 15:04:59 eric Exp $ */
 
 /*
  * Copyright (c) 2013 Eric Faurot <eric@openbsd.org>
@@ -174,18 +174,15 @@ table_fetch(struct table *table, enum table_service kind, union lookup *lk)
        if (table->t_backend->fetch == NULL)
                return (-1);
 
-       r = table->t_backend->fetch(table, kind, lk ? &buf : NULL);
+       r = table->t_backend->fetch(table, kind, &buf);
 
        if (r == 1) {
-               log_trace(TRACE_LOOKUP, "lookup: fetch %s from table %s:%s -> %s%s%s",
+               log_trace(TRACE_LOOKUP, "lookup: fetch %s from table %s:%s -> \"%s\"",
                    table_service_name(kind),
                    table->t_backend->name,
                    table->t_name,
-                   lk ? "\"" : "",
-                   (lk) ? buf : "found",
-                   lk ? "\"" : "");
-               if (buf)
-                       r = table_parse_lookup(kind, NULL, buf, lk);
+                   buf);
+               r = table_parse_lookup(kind, NULL, buf, lk);
        }
        else
                log_trace(TRACE_LOOKUP, "lookup: fetch %s from table %s:%s -> %d",
index fde3983..426d0f7 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: table_db.c,v 1.19 2018/12/27 14:41:45 eric Exp $      */
+/*     $OpenBSD: table_db.c,v 1.20 2018/12/27 15:04:59 eric Exp $      */
 
 /*
  * Copyright (c) 2011 Gilles Chehade <gilles@poolp.org>
@@ -221,11 +221,9 @@ table_db_fetch(struct table *table, enum table_service service, char **dst)
                        return 0;
        }
 
-       if (dst) {
-               *dst = strdup(dbk.data);
-               if (*dst == NULL)
-                       return -1;
-       }
+       *dst = strdup(dbk.data);
+       if (*dst == NULL)
+               return -1;
 
        return 1;
 }
index c0d122f..361be8f 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: table_static.c,v 1.28 2018/12/27 14:23:41 eric Exp $  */
+/*     $OpenBSD: table_static.c,v 1.29 2018/12/27 15:04:59 eric Exp $  */
 
 /*
  * Copyright (c) 2013 Eric Faurot <eric@openbsd.org>
@@ -307,7 +307,7 @@ table_static_lookup(struct table *m, enum table_service service, const char *key
 static int
 table_static_fetch(struct table *t, enum table_service service, char **dst)
 {
-       const char     *k;
+       const char *k;
 
        if (!dict_iter(&t->t_dict, &t->t_iter, &k, (void **)NULL)) {
                t->t_iter = NULL;
@@ -315,9 +315,6 @@ table_static_fetch(struct table *t, enum table_service service, char **dst)
                        return 0;
        }
 
-       if (dst == NULL)
-               return 1;
-
        *dst = strdup(k);
        if (*dst == NULL)
                return -1;