aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2022-08-11 23:45:21 -0400
committerTheodore Ts'o <tytso@mit.edu>2022-08-11 23:49:14 -0400
commit7bb8da77e890d738900da75266786ea9a55df961 (patch)
treef882000245948d769774710c79d8bf932a4902ed
parente8b05eb89c75b50876ffc9e23b17811bc429fe19 (diff)
downloade2fsprogs-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.c8
-rw-r--r--misc/badblocks.c2
-rw-r--r--misc/dumpe2fs.c3
-rw-r--r--misc/e2image.c2
-rw-r--r--misc/lsattr.c2
-rw-r--r--misc/tune2fs.c2
-rw-r--r--resize/main.c4
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) {