libSystem: inet_pton() or inet_ntop() converts wrong ipv6 addressed like: ::12
#include <arpa/inet.h> #include <stdlib.h> #include <stdio.h> #include <string.h> int main() { char BUFF[256]; const char *res; struct { union { struct in_addr v4; struct in6_addr v6; } in; } addr; /* Works fine */ memset(&addr.in.v6, '\0', sizeof(addr.in.v6)); inet_pton(AF_INET6, "::1", &addr.in.v6); res = inet_ntop(AF_INET6, &addr.in.v6, BUFF, INET6_ADDRSTRLEN); if (strcmp(res, "::1") == 0) { printf("PASS: match with '::1' found!\n"); } /* ====================================================== */ /* Most interesting part */ memset(&addr.in.v6, '\0', sizeof(addr.in.v6)); inet_pton(AF_INET6, "::12", &addr.in.v6); res = inet_ntop(AF_INET6, &addr.in.v6, BUFF, INET6_ADDRSTRLEN); /* ====================================================== */ printf("result (pointer): %s\n", res); printf("result (buffer): %s\n", BUFF); if (strcmp(res, "::12") == 0) { printf("PASS: match with '::12' found!\n"); return EXIT_SUCCESS; } printf("FAIL: no match with '::12' found!\n"); return EXIT_FAILURE; } _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (Darwin-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/darwin-dev/site_archiver%40lists.app... This email sent to site_archiver@lists.apple.com
participants (1)
-
Robin Hack