blob: 9ebff9825ad339626a6bef9b6d6210c6a3973127 [file] [log] [blame]
Andrew Geissler78b72792022-06-14 06:47:25 -05001From dab02796780f00d689cc1c7a0ba81abe7c5f28d0 Mon Sep 17 00:00:00 2001
Andrew Geissler7e0e3c02022-02-25 20:34:39 +00002From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 21 Jan 2022 15:15:11 -0800
Andrew Geisslerd5838332022-05-27 11:33:10 -05004Subject: [PATCH] pass correct parameters to getdents64
Andrew Geissler7e0e3c02022-02-25 20:34:39 +00005
6Fixes
7../git/src/basic/recurse-dir.c:57:40: error: incompatible pointer types passing 'uint8_t *' (aka 'unsigned char *') to parameter of type 'struct dirent *' [-Werror,-Wincompatible-pointer-types]
8 n = getdents64(dir_fd, (uint8_t*) de->buffer + de->buffer_size, bs - de->buffer_size);
9 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10
11../git/src/basic/stat-util.c:102:28: error: incompatible pointer types passing 'union (unnamed union at ../git/src/basic/stat-util.c:78:9) *' to parameter of type 'struct dirent *' [-Werror,-Wincompatible-pointer-types]
12 n = getdents64(fd, &buffer, sizeof(buffer));
13 ^~~~~~~
14
Andrew Geissler78b72792022-06-14 06:47:25 -050015Upstream-Status: Inappropriate [musl specific]
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000016Signed-off-by: Khem Raj <raj.khem@gmail.com>
Andrew Geissler78b72792022-06-14 06:47:25 -050017Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com>
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000018---
19 src/basic/recurse-dir.c | 2 +-
20 src/basic/stat-util.c | 2 +-
21 2 files changed, 2 insertions(+), 2 deletions(-)
22
23diff --git a/src/basic/recurse-dir.c b/src/basic/recurse-dir.c
Andrew Geissler78b72792022-06-14 06:47:25 -050024index efa1797b7b..03ff10ebe9 100644
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000025--- a/src/basic/recurse-dir.c
26+++ b/src/basic/recurse-dir.c
27@@ -54,7 +54,7 @@ int readdir_all(int dir_fd,
28 bs = MIN(MALLOC_SIZEOF_SAFE(de) - offsetof(DirectoryEntries, buffer), (size_t) SSIZE_MAX);
29 assert(bs > de->buffer_size);
30
31- n = getdents64(dir_fd, (uint8_t*) de->buffer + de->buffer_size, bs - de->buffer_size);
Andrew Geissler78b72792022-06-14 06:47:25 -050032+ n = getdents64(dir_fd, (struct dirent*)((uint8_t*) de->buffer + de->buffer_size), bs - de->buffer_size);
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000033 if (n < 0)
34 return -errno;
35 if (n == 0)
36diff --git a/src/basic/stat-util.c b/src/basic/stat-util.c
Andrew Geisslerd5838332022-05-27 11:33:10 -050037index c2269844f8..7cd6c7fa42 100644
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000038--- a/src/basic/stat-util.c
39+++ b/src/basic/stat-util.c
40@@ -99,7 +99,7 @@ int dir_is_empty_at(int dir_fd, const char *path) {
41 return fd;
42 }
43
44- n = getdents64(fd, &buffer, sizeof(buffer));
45+ n = getdents64(fd, (struct dirent *)&buffer, sizeof(buffer));
46 if (n < 0)
47 return -errno;
48
Andrew Geissler78b72792022-06-14 06:47:25 -050049--
502.34.1
51