lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 5 Jun 2020 15:26:01 -0600
From:   Andreas Dilger <adilger@...ger.ca>
To:     Lukas Czerner <lczerner@...hat.com>
Cc:     linux-ext4@...r.kernel.org
Subject: Re: [PATCH 2/4] e2fsck: use size_t instead of int in string_copy()

On Jun 5, 2020, at 2:14 AM, Lukas Czerner <lczerner@...hat.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@...hat.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@...ger.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






Download attachment "signature.asc" of type "application/pgp-signature" (874 bytes)

Powered by blists - more mailing lists