]> granicus.if.org Git - strace/commitdiff
Fix printing of invalid d_type in getdents syscall
authorDmitry V. Levin <ldv@altlinux.org>
Mon, 16 May 2016 21:35:07 +0000 (21:35 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Mon, 16 May 2016 21:47:09 +0000 (21:47 +0000)
* dirent.c (SYS_FUNC(getdents)): Treat d_type as unsigned char to avoid
potential sign-extension bug when printing invalid d_type.

dirent.c

index de5a163d9445f142b9c4f367e501d68981651432..7d882ae2d1afb564553987ec635abc55df6f5408 100644 (file)
--- a/dirent.c
+++ b/dirent.c
@@ -76,7 +76,7 @@ SYS_FUNC(readdir)
 SYS_FUNC(getdents)
 {
        unsigned int i, len, dents = 0;
-       char *buf;
+       unsigned char *buf;
 
        if (entering(tcp)) {
                printfd(tcp, tcp->u_arg[0]);