diff options
| author | Roy Marples <roy@marples.name> | 2020-01-08 16:07:58 +0000 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2020-01-08 16:07:58 +0000 |
| commit | 4c212ae174dd5d4eb3afc230bcce6cea6e0970d7 (patch) | |
| tree | a2bbd854de76533bb073a45ff321e8a27b6ef5a7 /src/privsep.h | |
| parent | cde30ee32e727b34e7d87d64cb4ba1f418b750fa (diff) | |
| download | dhcpcd-4c212ae174dd5d4eb3afc230bcce6cea6e0970d7.tar.xz | |
privsep: Pad structs out so there are no uninited memory issues
Add #ifdef'd out debug code for them as well.
Diffstat (limited to 'src/privsep.h')
| -rw-r--r-- | src/privsep.h | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/src/privsep.h b/src/privsep.h index ae244e40..11e9fa7b 100644 --- a/src/privsep.h +++ b/src/privsep.h @@ -72,6 +72,7 @@ struct ps_addr { sa_family_t psa_family; + uint8_t psa_pad[2]; union { struct in_addr psau_in_addr; struct in6_addr psau_in6_addr; @@ -85,6 +86,23 @@ struct ps_id { struct ps_addr psi_addr; unsigned int psi_ifindex; uint8_t psi_cmd; + uint8_t psi_pad[3]; +}; + +struct ps_msghdr { + uint8_t ps_cmd; + uint8_t ps_pad[sizeof(unsigned long) - 1]; + unsigned long ps_flags; + struct ps_id ps_id; + socklen_t ps_namelen; + socklen_t ps_controllen; + uint8_t ps_pad2[sizeof(size_t) - sizeof(socklen_t)]; + size_t ps_datalen; +}; + +struct ps_msg { + struct ps_msghdr psm_hdr; + uint8_t psm_data[PS_BUFLEN]; }; struct ps_process { @@ -106,21 +124,6 @@ struct ps_process { }; TAILQ_HEAD(ps_process_head, ps_process); -struct ps_msghdr { - uint8_t ps_cmd; - uint8_t ps_pad[sizeof(unsigned long) - 1]; - unsigned long ps_flags; - struct ps_id ps_id; - size_t ps_datalen; - socklen_t ps_namelen; - socklen_t ps_controllen; -}; - -struct ps_msg { - struct ps_msghdr psm_hdr; - uint8_t psm_data[PS_BUFLEN]; -}; - #include "privsep-inet.h" #include "privsep-root.h" #ifdef INET |
