aboutsummaryrefslogtreecommitdiff
path: root/util-linux/mount.c
diff options
context:
space:
mode:
Diffstat (limited to 'util-linux/mount.c')
-rw-r--r--util-linux/mount.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/util-linux/mount.c b/util-linux/mount.c
index 13590ceb4..c3e91e2a6 100644
--- a/util-linux/mount.c
+++ b/util-linux/mount.c
@@ -1975,6 +1975,12 @@ static int singlemount(struct mntent *mp, int ignore_busy)
dotted = xmalloc_sockaddr2dotted_noport(&lsa->u.sa);
if (ENABLE_FEATURE_CLEAN_UP) free(lsa);
ip = xasprintf("ip=%s", dotted);
+// Note: IPv6 scoped addresses ("name%iface", see RFC 4007) should be
+// handled by libc in getnameinfo() (inside xmalloc_sockaddr2dotted_noport()).
+// Currently, glibc does not support that (has no NI_NUMERICSCOPE),
+// musl apparently does. This results in "ip=numericIPv6%iface_name"
+// (instead of _numeric_ iface_id) with glibc.
+// This probalby should be fixed in glibc, not here.
if (ENABLE_FEATURE_CLEAN_UP) free(dotted);
parse_mount_options(ip, &filteropts);
if (ENABLE_FEATURE_CLEAN_UP) free(ip);