Use uintptr_t in fts for pointer alignment
authorSzabolcs Nagy <szabolcs.nagy@arm.com>
Tue, 12 Jul 2022 09:59:16 +0000 (10:59 +0100)
committerSzabolcs Nagy <szabolcs.nagy@arm.com>
Tue, 1 Nov 2022 09:48:17 +0000 (09:48 +0000)
The code assumed unsigned long can represent pointers.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
io/fts.c

index 283cf17..5a0a47a 100644 (file)
--- a/io/fts.c
+++ b/io/fts.c
@@ -55,6 +55,7 @@ static char sccsid[] = "@(#)fts.c     8.6 (Berkeley) 8/14/94";
 #include <dirent.h>
 #include <errno.h>
 #include <fts.h>
+#include <stdint.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
@@ -67,7 +68,7 @@ static char sccsid[] = "@(#)fts.c     8.6 (Berkeley) 8/14/94";
 #endif
 /* Align P to that size.  */
 #ifndef ALIGN
-#define        ALIGN(p)        (((unsigned long int) (p) + ALIGNBYTES) & ~ALIGNBYTES)
+#define        ALIGN(p)        (((uintptr_t) (p) + ALIGNBYTES) & ~ALIGNBYTES)
 #endif