diff options
author | Theodore Ts'o <tytso@mit.edu> | 2022-08-11 23:45:21 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2022-08-11 23:49:14 -0400 |
commit | 7bb8da77e890d738900da75266786ea9a55df961 (patch) | |
tree | f882000245948d769774710c79d8bf932a4902ed | |
parent | e8b05eb89c75b50876ffc9e23b17811bc429fe19 (diff) | |
download | e2fsprogs-7bb8da77e890d738900da75266786ea9a55df961.tar.gz |
Avoid potential NULL dereference when argv[0]
Addresses-Coverity-Bug: 1500772
Addresses-Coverity-Bug: 1500769
Addresses-Coverity-Bug: 1500767
Addresses-Coverity-Bug: 1500758
Addresses-Coverity-Bug: 1500756
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-rw-r--r-- | e2fsck/unix.c | 8 | ||||
-rw-r--r-- | misc/badblocks.c | 2 | ||||
-rw-r--r-- | misc/dumpe2fs.c | 3 | ||||
-rw-r--r-- | misc/e2image.c | 2 | ||||
-rw-r--r-- | misc/lsattr.c | 2 | ||||
-rw-r--r-- | misc/tune2fs.c | 2 | ||||
-rw-r--r-- | resize/main.c | 4 |
7 files changed, 19 insertions, 4 deletions
diff --git a/e2fsck/unix.c b/e2fsck/unix.c index 3708a4d80..4b6fd0999 100644 --- a/e2fsck/unix.c +++ b/e2fsck/unix.c @@ -74,11 +74,15 @@ int journal_enable_debug = -1; static void usage(e2fsck_t ctx) { + char *program_name = "e2fsck"; + + if (ctx && ctx->program_name) + program_name = ctx>program_name; fprintf(stderr, _("Usage: %s [-panyrcdfktvDFV] [-b superblock] [-B blocksize]\n" "\t\t[-l|-L bad_blocks_file] [-C fd] [-j external_journal]\n" "\t\t[-E extended-options] [-z undo_file] device\n"), - ctx->program_name); + program_name); fprintf(stderr, "%s", _("\nEmergency help:\n" " -p Automatic repair (no questions)\n" @@ -849,7 +853,7 @@ static errcode_t PRS(int argc, char *argv[], e2fsck_t *ret_ctx) if (argc && *argv) ctx->program_name = *argv; else - ctx->program_name = "e2fsck"; + usage(NULL); phys_mem_kb = get_memory_size() / 1024; ctx->readahead_kb = ~0ULL; diff --git a/misc/badblocks.c b/misc/badblocks.c index afeb3da9d..3dedf7630 100644 --- a/misc/badblocks.c +++ b/misc/badblocks.c @@ -1093,6 +1093,8 @@ int main (int argc, char ** argv) if (argc && *argv) program_name = *argv; + else + usage(); while ((c = getopt (argc, argv, "b:d:e:fi:o:svwnc:p:h:t:BX")) != EOF) { switch (c) { case 'b': diff --git a/misc/dumpe2fs.c b/misc/dumpe2fs.c index ef6d1cb82..7c080ed9f 100644 --- a/misc/dumpe2fs.c +++ b/misc/dumpe2fs.c @@ -619,7 +619,8 @@ int main (int argc, char ** argv) mmp_check = 1; header_only = 1; } - } + } else + usage(); if (!mmp_check) fprintf(stderr, "dumpe2fs %s (%s)\n", E2FSPROGS_VERSION, diff --git a/misc/e2image.c b/misc/e2image.c index 207c30374..f9357aa0c 100644 --- a/misc/e2image.c +++ b/misc/e2image.c @@ -1517,6 +1517,8 @@ int main (int argc, char ** argv) E2FSPROGS_DATE); if (argc && *argv) program_name = *argv; + else + usage(); add_error_table(&et_ext2_error_table); while ((c = getopt(argc, argv, "b:B:nrsIQafo:O:pc")) != EOF) switch (c) { diff --git a/misc/lsattr.c b/misc/lsattr.c index 55080e92a..72f4c6816 100644 --- a/misc/lsattr.c +++ b/misc/lsattr.c @@ -187,6 +187,8 @@ int main (int argc, char ** argv) #endif if (argc && *argv) program_name = *argv; + else + usage(); while ((c = getopt (argc, argv, "RVadlvp")) != EOF) switch (c) { diff --git a/misc/tune2fs.c b/misc/tune2fs.c index 7f023adfa..64a456af3 100644 --- a/misc/tune2fs.c +++ b/misc/tune2fs.c @@ -2951,6 +2951,8 @@ int tune2fs_main(int argc, char **argv) #endif if (argc && *argv) program_name = *argv; + else + usage(); add_error_table(&et_ext2_error_table); #ifdef CONFIG_BUILD_FINDFS diff --git a/resize/main.c b/resize/main.c index b745c58c2..94f5ec6d6 100644 --- a/resize/main.c +++ b/resize/main.c @@ -49,7 +49,7 @@ static void usage (char *prog) fprintf (stderr, _("Usage: %s [-d debug_flags] [-f] [-F] [-M] [-P] " "[-p] device [-b|-s|new_size] [-S RAID-stride] " "[-z undo_file]\n\n"), - prog); + prog ? prog : "resize2fs"); exit (1); } @@ -287,6 +287,8 @@ int main (int argc, char ** argv) E2FSPROGS_VERSION, E2FSPROGS_DATE); if (argc && *argv) program_name = *argv; + else + usage(NULL); while ((c = getopt(argc, argv, "d:fFhMPpS:bsz:")) != EOF) { switch (c) { |