[git commit] mdev: suppress aliasing warning

Denys Vlasenko vda.linux at googlemail.com
Sat Dec 8 14:41:17 UTC 2018


commit: https://git.busybox.net/busybox/commit/?id=51283b8109dc2fdaa3fefc5c5a93b6cda72cddfd
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 util-linux/mdev.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/util-linux/mdev.c b/util-linux/mdev.c
index 4b4eeafba..5ad09e09a 100644
--- a/util-linux/mdev.c
+++ b/util-linux/mdev.c
@@ -808,6 +808,16 @@ static void make_device(char *device_name, char *path, int operation)
 	} /* for (;;) */
 }
 
+static ssize_t readlink2(char *buf, size_t bufsize)
+{
+	// Grr... gcc 8.1.1:
+	// "passing argument 2 to restrict-qualified parameter aliases with argument 1"
+	// dance around that...
+	char *obuf FIX_ALIASING;
+	obuf = buf;
+	return readlink(buf, obuf, bufsize);
+}
+
 /* File callback for /sys/ traversal.
  * We act only on "/sys/.../dev" (pseudo)file
  */
@@ -831,7 +841,7 @@ static int FAST_FUNC fileAction(const char *fileName,
 	/* Read ".../subsystem" symlink in the same directory where ".../dev" is */
 	strcpy(subsys, path);
 	strcpy(subsys + len, "/subsystem");
-	res = readlink(subsys, subsys, sizeof(subsys)-1);
+	res = readlink2(subsys, sizeof(subsys)-1);
 	if (res > 0) {
 		subsys[res] = '\0';
 		free(G.subsystem);


More information about the busybox-cvs mailing list