diff options
Diffstat (limited to 'net-misc/dhcpcd')
-rw-r--r-- | net-misc/dhcpcd/Manifest | 3 | ||||
-rw-r--r-- | net-misc/dhcpcd/dhcpcd-8.0.2-r1.ebuild (renamed from net-misc/dhcpcd/dhcpcd-8.0.2.ebuild) | 4 | ||||
-rw-r--r-- | net-misc/dhcpcd/files/dhcpcd-8.0.2-string_termination.patch | 80 |
3 files changed, 86 insertions, 1 deletions
diff --git a/net-misc/dhcpcd/Manifest b/net-misc/dhcpcd/Manifest index a3708d2efc93..aa83e8587874 100644 --- a/net-misc/dhcpcd/Manifest +++ b/net-misc/dhcpcd/Manifest @@ -1,8 +1,9 @@ +AUX dhcpcd-8.0.2-string_termination.patch 1827 BLAKE2B d90f757e740cf73adc76d82705f669bd0d43415f523ff01d11c0afe911ab744cf5d36b32906209abc110eff2355f1687b2055cfac4a22085ba4aee65c74e5e27 SHA512 1d232efc8c822534dd55a5e5998392e4ded7b9051b69413a7ef44b450a1e050c651467148d560008fd537a5388873ba0d2efe9f4f6e4b7829f3f6ae87d82971e AUX dhcpcd.initd 328 BLAKE2B 72ef6bb16e4f80b440890112cd399eca1057ae42ddc96ee1a29482a048682dd34e065bb68876329ecfe2f1db4c084e320f4185b3029b89c2328d6ab27a1a7e80 SHA512 6d3220155f2d9ed3e3a00afd378eeb70d435e19804201f8bb35498f1f7f3dfdaeaa2f4a01a18f5e96b457d9c173bc6a206b3e67ebf6d95da7e7b350dcd153fde AUX dhcpcd.service 227 BLAKE2B e24aa85c15d0211856b02508b681f7e3c1f8b8b1743f31ced9600c2c33da04b61f2166cad7696776ae81ce1be5701cae2691f6dfd86aaf8679f20e459e87c7e5 SHA512 4a030dc291fa7deba9c1f33d61dafdda710247ef7f3743c28e46b767a190e359e468433147bda23c82fae9c93ec31cd68905bfdb51cb8c2d9176ea789b31b14e DIST dhcpcd-7.2.3.tar.xz 213552 BLAKE2B 5f89e11424b85702b05da6207ec346480c029de1416cc8892471de428ca0a4395a8915700e2237bfa2b133648973bc2a7c7d15aa2d0ba492f96fbf3908d7f613 SHA512 271cca422fad10eaf842acfd5b590c0ad537f5f23ee919a3928d8ad98463ab03bde21c0bc08741ea9618ee31095160a7c00066155eae2c74b17c49af65ba566f DIST dhcpcd-8.0.2.tar.xz 222408 BLAKE2B fb27a33cd64c7aeedb28e05c885c860618d923ac857895b9fdc7daa608f433587bea1e6630fd9897426b371a45b8a336e1edaa804d76eda6e9fc2adc1411aed2 SHA512 a6e3aa66800adc8b209324bae02a6e373e2623735bf0695ffec4a7c972d65c3498f55e4da62f93df0bc6cddb4bee8ab667b3743b5b25cd5f4cc9da4d1f8e15c4 EBUILD dhcpcd-7.2.3.ebuild 4407 BLAKE2B 6f5df954ec0be66be6a4f4c1b63a1dee87e78d5cab8de8cbe935bd0d2a82caf70c5dc8d513ddc69b6e317a3d44c2a527529420da71ecf1489a71cdc2f4384eb5 SHA512 aa591926ec797c71c9d28d91a64257eaee76e2fae6853925e0b0fdf9001fd6279bdae68bdd2727f500661b8142c96b3c66ab28b055fb8887c4b7d96162d42843 -EBUILD dhcpcd-8.0.2.ebuild 4420 BLAKE2B d1788540e773dc7708565dd2343989522004ad307e0ae24fad827f9ecc8ebf181d47bc34e16179f50a16ece7105761f9177cb4e310a586b0ed11a5343dc97b03 SHA512 207fb14d4e3c6089d1f4ac5816fd3635c2e38d74e0f1dd19d41aa482d5b399f90a8b352e77eec7153019168746d7f1c63499a741430a8df95f3734bf7cfd878b +EBUILD dhcpcd-8.0.2-r1.ebuild 4486 BLAKE2B 4fa85a2475043c6a24402a596a38f1ff01aa9d8df9ce03270b411060383d4382e21958b7eb69c7e1963f3b9f5a9296bdbd4cc814c7e344a759fbd0e5500d1f3b SHA512 ba68295d42423c80ab51c332b642837e19bad3126584d9f0cb210fccf9ce4d51d197e159f79b7edfefc80996bc96d98a1dba7e0dc51d213bea54ebd596960982 EBUILD dhcpcd-9999.ebuild 4420 BLAKE2B d1788540e773dc7708565dd2343989522004ad307e0ae24fad827f9ecc8ebf181d47bc34e16179f50a16ece7105761f9177cb4e310a586b0ed11a5343dc97b03 SHA512 207fb14d4e3c6089d1f4ac5816fd3635c2e38d74e0f1dd19d41aa482d5b399f90a8b352e77eec7153019168746d7f1c63499a741430a8df95f3734bf7cfd878b MISC metadata.xml 569 BLAKE2B 0507986b52ed21277e159089c7f4736602917c44f0577d62e7501d728c348b49ecf3a2c92842c8e32a59402ad2c2e4e5c3fba510e227aca738a3d763b62689fe SHA512 9083c03d22c5753f54d9525ac954df8df0cceaed07c05c14367ea2b8598e7d7ab64711c810dc89a46be8d76cba6b9aa14fa389f0d686ed12792c0bfcbabc266a diff --git a/net-misc/dhcpcd/dhcpcd-8.0.2.ebuild b/net-misc/dhcpcd/dhcpcd-8.0.2-r1.ebuild index d8940210a7b5..1696c38dcf71 100644 --- a/net-misc/dhcpcd/dhcpcd-8.0.2.ebuild +++ b/net-misc/dhcpcd/dhcpcd-8.0.2-r1.ebuild @@ -27,6 +27,10 @@ COMMON_DEPEND="udev? ( virtual/udev )" DEPEND="${COMMON_DEPEND}" RDEPEND="${COMMON_DEPEND}" +PATCHES=( + "${FILESDIR}"/${P}-string_termination.patch #691426 +) + src_configure() { local myeconfargs=( --dbdir="${EPREFIX}/var/lib/dhcpcd" diff --git a/net-misc/dhcpcd/files/dhcpcd-8.0.2-string_termination.patch b/net-misc/dhcpcd/files/dhcpcd-8.0.2-string_termination.patch new file mode 100644 index 000000000000..a1bc19ec974d --- /dev/null +++ b/net-misc/dhcpcd/files/dhcpcd-8.0.2-string_termination.patch @@ -0,0 +1,80 @@ +https://bugs.gentoo.org/691426 + +diff --git a/src/dhcp-common.c b/src/dhcp-common.c +index 08ab9493..9f556557 100644 +--- a/src/dhcp-common.c ++++ b/src/dhcp-common.c +@@ -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; +diff --git a/src/script.c b/src/script.c +index 74aef1b1..3dee7b08 100644 +--- a/src/script.c ++++ b/src/script.c +@@ -33,6 +33,7 @@ + #include <netinet/in.h> + #include <arpa/inet.h> + ++#include <assert.h> + #include <ctype.h> + #include <errno.h> + #include <signal.h> +@@ -477,12 +478,21 @@ dumplease: + fp = NULL; + #endif + ++ /* Count the terminated env strings. ++ * assert that the terminations are correct. */ + nenv = 0; + endp = buf + buf_pos; + for (bufp = buf; bufp < endp; bufp++) { +- if (*bufp == '\0') ++ if (*bufp == '\0') { ++#ifndef NDEBUG ++ if (bufp + 1 < endp) ++ assert(*(bufp + 1) != '\0'); ++#endif + nenv++; ++ } + } ++ assert(*--bufp == '\0'); ++ + if (ctx->script_envlen < nenv) { + env = reallocarray(ctx->script_env, nenv + 1, sizeof(*env)); + if (env == NULL) |