diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-07-07 05:08:07 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-07-07 05:08:07 +0000 |
commit | 5f872aec5064ebe8890452c4c241e11acd1315be (patch) | |
tree | 1605641dff9d3858f2b1595d8885bb0fe9496f34 /lib/e2p | |
parent | 84d93de43d50c0abc34e9e674c518c74d9f54320 (diff) | |
parent | 63687023fc2e8871a718cb4e18458eece2e3460c (diff) | |
download | e2fsprogs-android14-mainline-sdkext-release.tar.gz |
Snap for 10453563 from 63687023fc2e8871a718cb4e18458eece2e3460c to mainline-sdkext-releaseaml_sdk_341710000aml_sdk_341510000aml_sdk_341410000aml_sdk_341110080aml_sdk_341110000aml_sdk_341010000aml_sdk_340912010android14-mainline-sdkext-release
Change-Id: Ia78b6e6521a10ad6e70150eeebc82790ab7e5ad7
Diffstat (limited to 'lib/e2p')
-rw-r--r-- | lib/e2p/Android.bp | 15 | ||||
-rw-r--r-- | lib/e2p/Makefile.in | 3 | ||||
-rw-r--r-- | lib/e2p/e2p.h | 2 | ||||
-rw-r--r-- | lib/e2p/errcode.c | 6 | ||||
-rw-r--r-- | lib/e2p/fgetflags.c | 12 | ||||
-rw-r--r-- | lib/e2p/fgetversion.c | 2 | ||||
-rw-r--r-- | lib/e2p/fsetflags.c | 12 | ||||
-rw-r--r-- | lib/e2p/fsetversion.c | 1 | ||||
-rw-r--r-- | lib/e2p/getflags.c | 3 | ||||
-rw-r--r-- | lib/e2p/getversion.c | 1 | ||||
-rw-r--r-- | lib/e2p/ls.c | 2 | ||||
-rw-r--r-- | lib/e2p/setversion.c | 1 |
12 files changed, 34 insertions, 26 deletions
diff --git a/lib/e2p/Android.bp b/lib/e2p/Android.bp index 7be2d804..bed92c12 100644 --- a/lib/e2p/Android.bp +++ b/lib/e2p/Android.bp @@ -46,24 +46,9 @@ cc_library { "percent.c", ], - cflags: [ - "-Wno-error=attributes", - "-Wno-unused-parameter", - ], - target: { windows: { - include_dirs: [ "external/e2fsprogs/include/mingw" ], enabled: true, - cflags: [ - "-Wno-unused-variable", - ], - clang_cflags: [ - "-Wno-error=typedef-redefinition", - ], - host_ldlibs: [ - "-lws2_32", - ], }, }, diff --git a/lib/e2p/Makefile.in b/lib/e2p/Makefile.in index cd235117..92d9c018 100644 --- a/lib/e2p/Makefile.in +++ b/lib/e2p/Makefile.in @@ -219,4 +219,5 @@ encoding.o: $(srcdir)/encoding.c $(top_builddir)/lib/config.h \ $(top_builddir)/lib/dirpaths.h $(srcdir)/e2p.h \ $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h errcode.o: $(srcdir)/errcode.c $(top_builddir)/lib/config.h \ - $(top_builddir)/lib/dirpaths.h + $(top_builddir)/lib/dirpaths.h $(srcdir)/e2p.h \ + $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h diff --git a/lib/e2p/e2p.h b/lib/e2p/e2p.h index 65702a7e..5f4793e6 100644 --- a/lib/e2p/e2p.h +++ b/lib/e2p/e2p.h @@ -89,4 +89,4 @@ const char *e2p_encoding2str(int encoding); int e2p_get_encoding_flags(int encoding); int e2p_str2encoding_flags(int encoding, char *param, __u16 *flags); -const char *e2p_errcode2str(int err); +const char *e2p_errcode2str(unsigned int err); diff --git a/lib/e2p/errcode.c b/lib/e2p/errcode.c index 7e426553..1627c9d7 100644 --- a/lib/e2p/errcode.c +++ b/lib/e2p/errcode.c @@ -7,6 +7,8 @@ #include <stdlib.h> #include <string.h> +#include "e2p.h" + static const char *err_string[] = { "", "UNKNOWN", /* 1 */ @@ -32,14 +34,14 @@ static const char *err_string[] = { (sizeof(array) / sizeof(array[0])) /* Return the name of an encoding or NULL */ -const char *e2p_errcode2str(int err) +const char *e2p_errcode2str(unsigned int err) { static char buf[32]; if (err < ARRAY_SIZE(err_string)) return err_string[err]; - sprintf(buf, "UNKNOWN_ERRCODE_%d", err); + sprintf(buf, "UNKNOWN_ERRCODE_%u", err); return buf; } diff --git a/lib/e2p/fgetflags.c b/lib/e2p/fgetflags.c index 93e130c6..24a7166b 100644 --- a/lib/e2p/fgetflags.c +++ b/lib/e2p/fgetflags.c @@ -79,14 +79,26 @@ int fgetflags (const char * name, unsigned long * flags) *flags = f; return (save_errno); #elif HAVE_EXT2_IOCTLS + struct stat buf; int fd, r, f, save_errno = 0; + if (!stat(name, &buf) && + !S_ISREG(buf.st_mode) && !S_ISDIR(buf.st_mode)) { + errno = EOPNOTSUPP; + return -1; + } fd = open(name, OPEN_FLAGS); if (fd == -1) { if (errno == ELOOP || errno == ENXIO) errno = EOPNOTSUPP; return -1; } + if (!fstat(fd, &buf) && + !S_ISREG(buf.st_mode) && !S_ISDIR(buf.st_mode)) { + close(fd); + errno = EOPNOTSUPP; + return -1; + } r = ioctl(fd, EXT2_IOC_GETFLAGS, &f); if (r == -1) { if (errno == ENOTTY) diff --git a/lib/e2p/fgetversion.c b/lib/e2p/fgetversion.c index a65e9a5c..f3a5b4cd 100644 --- a/lib/e2p/fgetversion.c +++ b/lib/e2p/fgetversion.c @@ -65,8 +65,6 @@ int fgetversion(const char *name, unsigned long *version) rc = syscall(SYS_fsctl, name, EXT2_IOC_GETVERSION, &ver, 0); # endif /* !APPLE_DARWIN */ #else /* ! HAVE_EXT2_IOCTLS */ - extern int errno; - errno = EOPNOTSUPP; #endif /* ! HAVE_EXT2_IOCTLS */ if (rc == 0) diff --git a/lib/e2p/fsetflags.c b/lib/e2p/fsetflags.c index 6455e386..d865d243 100644 --- a/lib/e2p/fsetflags.c +++ b/lib/e2p/fsetflags.c @@ -80,14 +80,26 @@ int fsetflags (const char * name, unsigned long flags) int f = (int) flags; return syscall(SYS_fsctl, name, EXT2_IOC_SETFLAGS, &f, 0); #elif HAVE_EXT2_IOCTLS + struct stat buf; int fd, r, f, save_errno = 0; + if (!stat(name, &buf) && + !S_ISREG(buf.st_mode) && !S_ISDIR(buf.st_mode)) { + errno = EOPNOTSUPP; + return -1; + } fd = open(name, OPEN_FLAGS); if (fd == -1) { if (errno == ELOOP || errno == ENXIO) errno = EOPNOTSUPP; return -1; } + if (!fstat(fd, &buf) && + !S_ISREG(buf.st_mode) && !S_ISDIR(buf.st_mode)) { + close(fd); + errno = EOPNOTSUPP; + return -1; + } f = (int) flags; r = ioctl(fd, EXT2_IOC_SETFLAGS, &f); if (r == -1) { diff --git a/lib/e2p/fsetversion.c b/lib/e2p/fsetversion.c index c2e04559..5f844b55 100644 --- a/lib/e2p/fsetversion.c +++ b/lib/e2p/fsetversion.c @@ -65,7 +65,6 @@ int fsetversion (const char * name, unsigned long version) return syscall(SYS_fsctl, name, EXT2_IOC_SETVERSION, &ver, 0); #endif #else /* ! HAVE_EXT2_IOCTLS */ - extern int errno; errno = EOPNOTSUPP; return -1; #endif /* ! HAVE_EXT2_IOCTLS */ diff --git a/lib/e2p/getflags.c b/lib/e2p/getflags.c index e4e2ad73..6708cd68 100644 --- a/lib/e2p/getflags.c +++ b/lib/e2p/getflags.c @@ -30,8 +30,8 @@ int getflags (int fd, unsigned long * flags) { - struct stat buf; #if HAVE_STAT_FLAGS + struct stat buf; if (fstat (fd, &buf) == -1) return -1; @@ -53,6 +53,7 @@ int getflags (int fd, unsigned long * flags) return 0; #else #if HAVE_EXT2_IOCTLS + struct stat buf; int r, f; if (!fstat(fd, &buf) && diff --git a/lib/e2p/getversion.c b/lib/e2p/getversion.c index 9f719b4a..d374a0ea 100644 --- a/lib/e2p/getversion.c +++ b/lib/e2p/getversion.c @@ -35,7 +35,6 @@ int getversion (int fd, unsigned long * version) *version = ver; return r; #else /* ! HAVE_EXT2_IOCTLS */ - extern int errno; errno = EOPNOTSUPP; return -1; #endif /* ! HAVE_EXT2_IOCTLS */ diff --git a/lib/e2p/ls.c b/lib/e2p/ls.c index 176bee0f..9511d2c7 100644 --- a/lib/e2p/ls.c +++ b/lib/e2p/ls.c @@ -312,7 +312,7 @@ void list_super2(struct ext2_super_block * sb, FILE *f) sb->s_first_meta_bg); if (sb->s_log_groups_per_flex) fprintf(f, "Flex block group size: %u\n", - 1 << sb->s_log_groups_per_flex); + 1U << sb->s_log_groups_per_flex); if (sb->s_mkfs_time) { tm = sb->s_mkfs_time; fprintf(f, "Filesystem created: %s", ctime(&tm)); diff --git a/lib/e2p/setversion.c b/lib/e2p/setversion.c index 2bc93374..dd4a3f06 100644 --- a/lib/e2p/setversion.c +++ b/lib/e2p/setversion.c @@ -34,7 +34,6 @@ int setversion (int fd, unsigned long version) ver = (int) version; return ioctl (fd, EXT2_IOC_SETVERSION, &ver); #else /* ! HAVE_EXT2_IOCTLS */ - extern int errno; errno = EOPNOTSUPP; return -1; #endif /* ! HAVE_EXT2_IOCTLS */ |