]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
print_option: terminate parameters with no value
authorRoy Marples <roy@marples.name>
Thu, 8 Aug 2019 19:41:24 +0000 (20:41 +0100)
committerRoy Marples <roy@marples.name>
Thu, 8 Aug 2019 19:41:24 +0000 (20:41 +0100)
src/dhcp-common.c

index 08ab9493dd2d693e2c511648ea674a28e132b7f6..9f5565575d454eab3204c63e832cd32153fd72cf 100644 (file)
@@ -645,14 +645,16 @@ print_option(FILE *fp, const char *prefix, const struct dhcp_opt *opt,
        if (fputc('=', fp) == EOF)
                return -1;
        if (dl == 0)
-               return 1;
+               goto out;
 
        if (opt->type & OT_RFC1035) {
                char domain[NS_MAXDNAME];
 
                sl = decode_rfc1035(domain, sizeof(domain), data, dl);
-               if (sl == 0 || sl == -1)
-                       return sl;
+               if (sl == -1)
+                       return -1;
+               if (sl == 0)
+                       goto out;
                if (valid_domainname(domain, opt->type) == -1)
                        return -1;
                return efprintf(fp, "%s", domain);
@@ -693,9 +695,7 @@ print_option(FILE *fp, const char *prefix, const struct dhcp_opt *opt,
                                        return -1;
                        }
                }
-               if (fputc('\0', fp) == EOF)
-                       return -1;
-               return 1;
+               goto out;
        }
 
        t = data;
@@ -760,6 +760,7 @@ print_option(FILE *fp, const char *prefix, const struct dhcp_opt *opt,
                }
        }
 
+out:
        if (fputc('\0', fp) == EOF)
                return -1;
        return 1;