must_write(PRIV_UNPRIVILEGED, &cmd, sizeof(enum priv_cmd));
len = strlen(file);
must_write(PRIV_UNPRIVILEGED, &len, sizeof(int));
- must_write(PRIV_UNPRIVILEGED, file, len + 1);
+ must_write(PRIV_UNPRIVILEGED, file, len);
priv_wait();
must_read(PRIV_UNPRIVILEGED, &rc, sizeof(int));
if (rc == -1)
must_write(PRIV_UNPRIVILEGED, &cmd, sizeof(enum priv_cmd));
len = strlen(ifname);
must_write(PRIV_UNPRIVILEGED, &len, sizeof(int));
- must_write(PRIV_UNPRIVILEGED, ifname, len + 1);
+ must_write(PRIV_UNPRIVILEGED, ifname, len);
priv_wait();
must_read(PRIV_UNPRIVILEGED, &rc, sizeof(int));
if (rc != 0)
must_read(PRIV_UNPRIVILEGED, &rc, sizeof(int));
if ((buf = (char*)realloc(buf, rc+1)) == NULL)
fatal("privsep", NULL);
- must_read(PRIV_UNPRIVILEGED, buf, rc+1);
+ must_read(PRIV_UNPRIVILEGED, buf, rc);
+ buf[rc] = '\0';
return buf;
}
#endif
len = strlen(un.nodename);
must_write(PRIV_PRIVILEGED, &len, sizeof(int));
- must_write(PRIV_PRIVILEGED, un.nodename, len + 1);
+ must_write(PRIV_PRIVILEGED, un.nodename, len);
} else {
len = strlen(res->ai_canonname);
must_write(PRIV_PRIVILEGED, &len, sizeof(int));
- must_write(PRIV_PRIVILEGED, res->ai_canonname, len + 1);
+ must_write(PRIV_PRIVILEGED, res->ai_canonname, len);
freeaddrinfo(res);
}
}