]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Fix guards for prior
authorRoy Marples <roy@marples.name>
Mon, 16 Mar 2026 11:45:01 +0000 (11:45 +0000)
committerRoy Marples <roy@marples.name>
Mon, 16 Mar 2026 11:45:01 +0000 (11:45 +0000)
src/privsep-bsd.c

index 3ce5c287100eca8365011f9a882376c875d75d85..ce649b7e6baec265df66ab3d03aef192e35fc93c 100644 (file)
@@ -158,8 +158,9 @@ ps_root_doindirectioctl(struct dhcpcd_ctx *ctx,
                return -1;
        }
        memcpy(&ifnamelen, p, sizeof(ifnamelen));
+       len -= sizeof(ifnamelen);
 
-       if (len < ifnamelen || len > sizeof(ifr.ifr_name)) {
+       if (len < ifnamelen || ifnamelen > sizeof(ifr.ifr_name)) {
                errno = EINVAL;
                return -1;
        }
@@ -167,9 +168,11 @@ ps_root_doindirectioctl(struct dhcpcd_ctx *ctx,
        memcpy(ifr.ifr_name, p, ifnamelen);
        len -= ifnamelen;
 
-       /* Ensure data is now aligned */
-       memmove(data, p + ifnamelen, len);
-       ifr.ifr_data = data;
+       if (len != 0) {
+               /* Ensure data is now aligned */
+               memmove(data, p + ifnamelen, len);
+               ifr.ifr_data = data;
+       }
 
        return ps_root_doioctldom(ctx, PF_INET, req, &ifr, sizeof(ifr));
 }