aboutsummaryrefslogtreecommitdiff
path: root/lib/e2p
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-07-07 05:08:07 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-07-07 05:08:07 +0000
commit5f872aec5064ebe8890452c4c241e11acd1315be (patch)
tree1605641dff9d3858f2b1595d8885bb0fe9496f34 /lib/e2p
parent84d93de43d50c0abc34e9e674c518c74d9f54320 (diff)
parent63687023fc2e8871a718cb4e18458eece2e3460c (diff)
downloade2fsprogs-android14-mainline-sdkext-release.tar.gz
Change-Id: Ia78b6e6521a10ad6e70150eeebc82790ab7e5ad7
Diffstat (limited to 'lib/e2p')
-rw-r--r--lib/e2p/Android.bp15
-rw-r--r--lib/e2p/Makefile.in3
-rw-r--r--lib/e2p/e2p.h2
-rw-r--r--lib/e2p/errcode.c6
-rw-r--r--lib/e2p/fgetflags.c12
-rw-r--r--lib/e2p/fgetversion.c2
-rw-r--r--lib/e2p/fsetflags.c12
-rw-r--r--lib/e2p/fsetversion.c1
-rw-r--r--lib/e2p/getflags.c3
-rw-r--r--lib/e2p/getversion.c1
-rw-r--r--lib/e2p/ls.c2
-rw-r--r--lib/e2p/setversion.c1
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 */