summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2010-01-04 23:15:32 -0500
committerTheodore Ts'o <tytso@mit.edu>2010-07-05 14:53:58 -0400
commitb887f08f959fa3ef4ead9b6e2fd71becf4877a40 (patch)
treed941568123102dad85b1ffb32127eaf5b4d4ba8b
parentf96cb89e7aa1ff0d2c4f90b2cf499151f96f10c4 (diff)
downloade2fsprogs-b887f08f959fa3ef4ead9b6e2fd71becf4877a40.tar.gz
e2freefrag: Fix getopt bug on machines with unsigned chars
The getopt() function returns an int, not a char. On systems where the default char is unsigned (like ppc), we get weird behavior where -1 is truncated to 0xff but compared to (int)-1. Also fix this same bug for two test programs, test_rel and iscan, which aren't currently used at the moment. Addresses-Gentoo-Bug: #299386 Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-rw-r--r--e2fsck/iscan.c2
-rw-r--r--misc/e2freefrag.c3
-rw-r--r--tests/progs/test_rel.c2
3 files changed, 4 insertions, 3 deletions
diff --git a/e2fsck/iscan.c b/e2fsck/iscan.c
index e9fa0763..84e2cc17 100644
--- a/e2fsck/iscan.c
+++ b/e2fsck/iscan.c
@@ -51,7 +51,7 @@ static void usage(void)
static void PRS(int argc, char *argv[])
{
int flush = 0;
- char c;
+ int c;
#ifdef MTRACE
extern void *mallwatch;
#endif
diff --git a/misc/e2freefrag.c b/misc/e2freefrag.c
index e0b0696d..50bb9863 100644
--- a/misc/e2freefrag.c
+++ b/misc/e2freefrag.c
@@ -259,7 +259,8 @@ int main(int argc, char *argv[])
ext2_filsys fs = NULL;
char *device_name;
char *progname;
- char c, *end;
+ char *end;
+ int c;
add_error_table(&et_ext2_error_table);
progname = argv[0];
diff --git a/tests/progs/test_rel.c b/tests/progs/test_rel.c
index e6997b65..954a7221 100644
--- a/tests/progs/test_rel.c
+++ b/tests/progs/test_rel.c
@@ -713,7 +713,7 @@ void main(int argc, char **argv)
int retval;
int sci_idx;
const char *usage = "Usage: test_rel [-R request] [-f cmd_file]";
- char c;
+ int c;
char *request = 0;
int exit_status = 0;
char *cmd_file = 0;