Przeglądaj źródła

fix stack-based oob memory clobber in resolver's result sorting

commit 4f35eb7591031a1e5ef9828f9304361f282f28b9 introduced this bug.
it is not present in any released versions. inadvertent use of the &
operator on an array into which we're indexing produced arithmetic on
the wrong-type pointer, with undefined behavior.
Rich Felker 6 lat temu
rodzic
commit
64466094ed
1 zmienionych plików z 1 dodań i 1 usunięć
  1. 1 1
      src/network/lookup_name.c

+ 1 - 1
src/network/lookup_name.c

@@ -394,7 +394,7 @@ int __lookup_name(struct address buf[static MAXADDRS], char canon[static 256], c
 				key |= DAS_USABLE;
 				if (!getsockname(fd, sa, &salen)) {
 					if (family == AF_INET) memcpy(
-						&sa6.sin6_addr.s6_addr+12,
+						sa6.sin6_addr.s6_addr+12,
 						&sa4.sin_addr, 4);
 					if (dscope == scopeof(&sa6.sin6_addr))
 						key |= DAS_MATCHINGSCOPE;