aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2020-01-16 18:33:24 -0500
committerTheodore Ts'o <tytso@mit.edu>2020-01-16 18:33:24 -0500
commit0670fc20df4a4bbbeb0edb30d82628ea30a80598 (patch)
treecda5773b8d8950866b8d50990a569b0d35b95b3f
parent43508a9f6ecb3dabfa563b3625961eb2a6ea6be4 (diff)
parentf6c5ad97daf7b266d66987476da33d6dfe341b36 (diff)
downloade2fsprogs-0670fc20df4a4bbbeb0edb30d82628ea30a80598.tar.gz
Merge branch 'maint' into next
-rw-r--r--debian/changelog9
-rw-r--r--lib/et/error_message.c13
-rw-r--r--lib/ext2fs/ext2_err.et.in3
-rw-r--r--lib/ext2fs/imager.c3
4 files changed, 24 insertions, 4 deletions
diff --git a/debian/changelog b/debian/changelog
index 221594477..b388f1231 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+e2fsprogs (1.45.5-2) unstable; urgency=medium
+
+ * Fix com_err support on Hurd, which has POSIX E* error code starting at
+ 0x40000000. Otherwise the regression tests will fail since the
+ expected output for various error cases will not have the correct
+ error text.
+
+ -- Theodore Y. Ts'o <tytso@mit.edu> Wed, 08 Jan 2020 15:58:44 -0500
+
e2fsprogs (1.45.5-1) unstable; urgency=medium
* New upstream feature
diff --git a/lib/et/error_message.c b/lib/et/error_message.c
index bd18be781..cd9f57f56 100644
--- a/lib/et/error_message.c
+++ b/lib/et/error_message.c
@@ -113,6 +113,11 @@ gettextf set_com_err_gettext(gettextf new_proc)
return x;
}
+#ifdef __GNU__
+#define SYS_ERR_BASE 0x40000000
+#else
+#define SYS_ERR_BASE 0
+#endif
const char * error_message (errcode_t code)
{
@@ -124,14 +129,14 @@ const char * error_message (errcode_t code)
offset = (int) (code & ((1<<ERRCODE_RANGE)-1));
table_num = code - offset;
- if (!table_num) {
+ if (table_num == SYS_ERR_BASE) {
#ifdef HAS_SYS_ERRLIST
- if (offset < sys_nerr)
- return(sys_errlist[offset]);
+ if (code < sys_nerr)
+ return(sys_errlist[code]);
else
goto oops;
#else
- cp = strerror(offset);
+ cp = strerror(code);
if (cp)
return(cp);
else
diff --git a/lib/ext2fs/ext2_err.et.in b/lib/ext2fs/ext2_err.et.in
index b2ba71ad2..0c76fee64 100644
--- a/lib/ext2fs/ext2_err.et.in
+++ b/lib/ext2fs/ext2_err.et.in
@@ -545,4 +545,7 @@ ec EXT2_ET_INODE_CORRUPTED,
ec EXT2_ET_EA_INODE_CORRUPTED,
"Inode containing extended attribute value is corrupted"
+ec EXT2_ET_NO_GDESC,
+ "Group descriptors not loaded"
+
end
diff --git a/lib/ext2fs/imager.c b/lib/ext2fs/imager.c
index 64a55be53..f7f8df423 100644
--- a/lib/ext2fs/imager.c
+++ b/lib/ext2fs/imager.c
@@ -201,6 +201,9 @@ errcode_t ext2fs_image_super_write(ext2_filsys fs, int fd,
int j;
#endif
+ if (fs->group_desc == NULL)
+ return EXT2_ET_NO_GDESC;
+
buf = malloc(fs->blocksize);
if (!buf)
return ENOMEM;