mount: tweak "IPv6 scoped addr" commit

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2016-09-26 20:36:30 +02:00
parent 3c18e3051d
commit 5093c8c4aa

View File

@ -1975,13 +1975,13 @@ static int singlemount(struct mntent *mp, int ignore_busy)
dotted = xmalloc_sockaddr2dotted_noport(&lsa->u.sa); dotted = xmalloc_sockaddr2dotted_noport(&lsa->u.sa);
if (ENABLE_FEATURE_CLEAN_UP) free(lsa); if (ENABLE_FEATURE_CLEAN_UP) free(lsa);
ip = xasprintf("ip=%s", dotted); ip = xasprintf("ip=%s", dotted);
// Note: IPv6 scoped addresses ("name%iface", see RFC 4007) should be if (ENABLE_FEATURE_CLEAN_UP) free(dotted);
// Note: IPv6 scoped addresses ("host%iface", see RFC 4007) should be
// handled by libc in getnameinfo() (inside xmalloc_sockaddr2dotted_noport()). // handled by libc in getnameinfo() (inside xmalloc_sockaddr2dotted_noport()).
// Currently, glibc does not support that (has no NI_NUMERICSCOPE), // Currently, glibc does not support that (has no NI_NUMERICSCOPE),
// musl apparently does. This results in "ip=numericIPv6%iface_name" // musl apparently does. This results in "ip=numericIPv6%iface_name"
// (instead of _numeric_ iface_id) with glibc. // (instead of _numeric_ iface_id) with glibc.
// This probalby should be fixed in glibc, not here. // This probably should be fixed in glibc, not here.
if (ENABLE_FEATURE_CLEAN_UP) free(dotted);
parse_mount_options(ip, &filteropts); parse_mount_options(ip, &filteropts);
if (ENABLE_FEATURE_CLEAN_UP) free(ip); if (ENABLE_FEATURE_CLEAN_UP) free(ip);