summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2022-08-11 23:51:03 -0400
committerTheodore Ts'o <tytso@mit.edu>2022-08-11 23:51:03 -0400
commit068eadd2c4243cf66e4b067a65c5a8fe2a62d774 (patch)
tree01f7067d5a651d29b5904a37eb330e491d29f0a1
parent8e2e5a514bfef7d960e4a7af986a959e2294a4cc (diff)
parent7bb8da77e890d738900da75266786ea9a55df961 (diff)
downloade2fsprogs-068eadd2c4243cf66e4b067a65c5a8fe2a62d774.tar.gz
Merge branch 'maint' into next
-rw-r--r--e2fsck/pass3.c4
-rw-r--r--e2fsck/problem.c6
-rw-r--r--e2fsck/rehash.c2
-rw-r--r--e2fsck/unix.c8
-rw-r--r--misc/badblocks.c2
-rw-r--r--misc/dumpe2fs.c3
-rw-r--r--misc/e2image.c4
-rw-r--r--misc/lsattr.c2
-rw-r--r--misc/tune2fs.c2
-rw-r--r--resize/extent.c4
-rw-r--r--resize/main.c6
11 files changed, 28 insertions, 15 deletions
diff --git a/e2fsck/pass3.c b/e2fsck/pass3.c
index d6b8c8b4..16d243f6 100644
--- a/e2fsck/pass3.c
+++ b/e2fsck/pass3.c
@@ -324,8 +324,8 @@ static int check_directory(e2fsck_t ctx, ext2_ino_t dir,
if (parent)
pctx->dir = parent;
else
- ext2fs_lookup(fs, ino, "..", 2, NULL,
- &pctx->dir);
+ (void) ext2fs_lookup(fs, ino, "..", 2, NULL,
+ &pctx->dir);
if (fix_problem(ctx, !parent ? PR_3_UNCONNECTED_DIR :
PR_3_LOOPED_DIR, pctx)) {
if (e2fsck_reconnect_file(ctx, pctx->ino)) {
diff --git a/e2fsck/problem.c b/e2fsck/problem.c
index 361c1d1a..6ad6fb84 100644
--- a/e2fsck/problem.c
+++ b/e2fsck/problem.c
@@ -2573,8 +2573,7 @@ int fix_problem(e2fsck_t ctx, problem_t code, struct problem_context *pctx)
if ((ctx->options & E2F_OPT_PREEN) &&
(ptr->flags & PR_PREEN_OK))
suppress++;
- if ((ptr->flags & PR_LATCH_MASK) &&
- (ldesc->flags & (PRL_YES | PRL_NO)))
+ if (ldesc && (ldesc->flags & (PRL_YES | PRL_NO)))
suppress++;
if (ptr->count == ptr->max_count + 1) {
if (ctx->problem_logf)
@@ -2619,8 +2618,7 @@ int fix_problem(e2fsck_t ctx, problem_t code, struct problem_context *pctx)
answer = def_yn;
if (!(ptr->flags & PR_PREEN_NOMSG))
print_answer = 1;
- } else if ((ptr->flags & PR_LATCH_MASK) &&
- (ldesc->flags & (PRL_YES | PRL_NO))) {
+ } else if (ldesc && (ldesc->flags & (PRL_YES | PRL_NO))) {
print_answer = 1;
if (ldesc->flags & PRL_YES)
answer = 1;
diff --git a/e2fsck/rehash.c b/e2fsck/rehash.c
index f9af0329..f7b19f62 100644
--- a/e2fsck/rehash.c
+++ b/e2fsck/rehash.c
@@ -414,6 +414,8 @@ static void mutate_name(char *str, unsigned int *len)
l += 2;
else
l = (l+3) & ~3;
+ if (l > 255)
+ l = 255;
str[l-2] = '~';
str[l-1] = '0';
*len = l;
diff --git a/e2fsck/unix.c b/e2fsck/unix.c
index c1b443b9..76549c40 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 afeb3da9..3dedf763 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 ef6d1cb8..7c080ed9 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 2c1f3db3..079c6812 100644
--- a/misc/e2image.c
+++ b/misc/e2image.c
@@ -943,7 +943,7 @@ static errcode_t initialize_qcow2_image(int fd, ext2_filsys fs,
header->refcount_table_clusters =
ext2fs_cpu_to_be32(image->refcount.refcount_table_clusters);
offset += image->cluster_size;
- offset += image->refcount.refcount_table_clusters <<
+ offset += (blk64_t) image->refcount.refcount_table_clusters <<
image->cluster_bits;
/* Make space for L2 tables */
@@ -1518,6 +1518,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 55080e92..72f4c681 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 6c162ba5..0c2ab3c3 100644
--- a/misc/tune2fs.c
+++ b/misc/tune2fs.c
@@ -3100,6 +3100,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/extent.c b/resize/extent.c
index 4177c6f7..82f69ca8 100644
--- a/resize/extent.c
+++ b/resize/extent.c
@@ -50,14 +50,12 @@ errcode_t ext2fs_create_extent_table(ext2_extent *ret_extent, __u64 size)
extent->num = 0;
extent->sorted = 1;
- retval = ext2fs_get_array(sizeof(struct ext2_extent_entry),
+ retval = ext2fs_get_arrayzero(sizeof(struct ext2_extent_entry),
extent->size, &extent->list);
if (retval) {
ext2fs_free_mem(&extent);
return retval;
}
- memset(extent->list, 0,
- sizeof(struct ext2_extent_entry) * extent->size);
*ret_extent = extent;
return 0;
}
diff --git a/resize/main.c b/resize/main.c
index a1a1c79a..94f5ec6d 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) {
@@ -544,7 +546,7 @@ int main (int argc, char ** argv)
/* If using cluster allocations, trim down to a cluster boundary */
if (ext2fs_has_feature_bigalloc(fs->super)) {
- new_size &= ~((blk64_t)(1 << fs->cluster_ratio_bits) - 1);
+ new_size &= ~((blk64_t)(1ULL << fs->cluster_ratio_bits) - 1);
}
new_group_desc_count = ext2fs_div64_ceil(new_size -