diff options
author | Mike Frysinger <vapier@gentoo.org> | 2010-01-04 23:15:32 -0500 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2010-07-05 14:53:58 -0400 |
commit | b887f08f959fa3ef4ead9b6e2fd71becf4877a40 (patch) | |
tree | d941568123102dad85b1ffb32127eaf5b4d4ba8b | |
parent | f96cb89e7aa1ff0d2c4f90b2cf499151f96f10c4 (diff) | |
download | e2fsprogs-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.c | 2 | ||||
-rw-r--r-- | misc/e2freefrag.c | 3 | ||||
-rw-r--r-- | tests/progs/test_rel.c | 2 |
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; |