Message ID | 20200605081442.13428-2-lczerner@redhat.com |
---|---|
State | Accepted |
Headers | show |
Series | [1/4] e2fsck: remove unused variable 'new_array' | expand |
On Jun 5, 2020, at 2:14 AM, Lukas Czerner <lczerner@redhat.com> wrote: > > len argument in string_copy() is int, but it is used with malloc(), > strlen(), strncpy() and some callers use sizeof() to pass value in. So > it really ought to be size_t rather than int. Fix it. > > Signed-off-by: Lukas Czerner <lczerner@redhat.com> Thanks, having good types makes it much easier to follow code logic. There are still a bunch of places in e2fsprogs that are using "int" and "long" for various blocks, counters, etc. that could use more precise types. I did a bunch of cleanup when I reviewd all of the directory and allocation code for 64-bit issues. It still lingers elsewhere, but every fix improves the code a bit, if we keep an eye on other incoming changes. Reviewed-by: Andreas Dilger <adilger@dilger.ca> > --- > e2fsck/e2fsck.h | 2 +- > e2fsck/util.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/e2fsck/e2fsck.h b/e2fsck/e2fsck.h > index 9b2b9ce8..85f953b2 100644 > --- a/e2fsck/e2fsck.h > +++ b/e2fsck/e2fsck.h > @@ -627,7 +627,7 @@ extern void log_err(e2fsck_t ctx, const char *fmt, ...) > extern void e2fsck_read_bitmaps(e2fsck_t ctx); > extern void e2fsck_write_bitmaps(e2fsck_t ctx); > extern void preenhalt(e2fsck_t ctx); > -extern char *string_copy(e2fsck_t ctx, const char *str, int len); > +extern char *string_copy(e2fsck_t ctx, const char *str, size_t len); > extern int fs_proc_check(const char *fs_name); > extern int check_for_modules(const char *fs_name); > #ifdef RESOURCE_TRACK > diff --git a/e2fsck/util.c b/e2fsck/util.c > index d98b8e47..88e0ea8a 100644 > --- a/e2fsck/util.c > +++ b/e2fsck/util.c > @@ -135,7 +135,7 @@ void *e2fsck_allocate_memory(e2fsck_t ctx, unsigned long size, > } > > char *string_copy(e2fsck_t ctx EXT2FS_ATTR((unused)), > - const char *str, int len) > + const char *str, size_t len) > { > char *ret; > > -- > 2.21.3 > Cheers, Andreas
On Fri, Jun 05, 2020 at 10:14:40AM +0200, Lukas Czerner wrote: > len argument in string_copy() is int, but it is used with malloc(), > strlen(), strncpy() and some callers use sizeof() to pass value in. So > it really ought to be size_t rather than int. Fix it. > > Signed-off-by: Lukas Czerner <lczerner@redhat.com> Thanks, applied. - Ted
diff --git a/e2fsck/e2fsck.h b/e2fsck/e2fsck.h index 9b2b9ce8..85f953b2 100644 --- a/e2fsck/e2fsck.h +++ b/e2fsck/e2fsck.h @@ -627,7 +627,7 @@ extern void log_err(e2fsck_t ctx, const char *fmt, ...) extern void e2fsck_read_bitmaps(e2fsck_t ctx); extern void e2fsck_write_bitmaps(e2fsck_t ctx); extern void preenhalt(e2fsck_t ctx); -extern char *string_copy(e2fsck_t ctx, const char *str, int len); +extern char *string_copy(e2fsck_t ctx, const char *str, size_t len); extern int fs_proc_check(const char *fs_name); extern int check_for_modules(const char *fs_name); #ifdef RESOURCE_TRACK diff --git a/e2fsck/util.c b/e2fsck/util.c index d98b8e47..88e0ea8a 100644 --- a/e2fsck/util.c +++ b/e2fsck/util.c @@ -135,7 +135,7 @@ void *e2fsck_allocate_memory(e2fsck_t ctx, unsigned long size, } char *string_copy(e2fsck_t ctx EXT2FS_ATTR((unused)), - const char *str, int len) + const char *str, size_t len) { char *ret;
len argument in string_copy() is int, but it is used with malloc(), strlen(), strncpy() and some callers use sizeof() to pass value in. So it really ought to be size_t rather than int. Fix it. Signed-off-by: Lukas Czerner <lczerner@redhat.com> --- e2fsck/e2fsck.h | 2 +- e2fsck/util.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)