On Tue, Jan 10, 2023 at 04:09:14PM -0700, Vishal Verma wrote:
> Static analysis reports that in add_region(), a buffer from pread()
> won't have NUL-termination. Hence passing it to strtol subsequently can
> be wrong. Manually add the termination after pread() to fix this.
>
> Fixes: c64cc150a21e ("ndctl: add support in libndctl to provide deep flush")
> Cc: Dave Jiang <[email protected]>
> Signed-off-by: Vishal Verma <[email protected]>
> ---
> ndctl/lib/libndctl.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/ndctl/lib/libndctl.c b/ndctl/lib/libndctl.c
> index f32f704..ddbdd9a 100644
> --- a/ndctl/lib/libndctl.c
> +++ b/ndctl/lib/libndctl.c
> @@ -2750,6 +2750,8 @@ static void *add_region(void *parent, int id, const
> char *region_base)
> goto out;
> }
>
> + /* pread() doesn't add NUL termination */
> + buf[1] = 0;
> perm = strtol(buf, NULL, 0);
> if (perm == 0) {
> close(region->flush_fd);
>
This diff is annoying because it didn't include enough to show the
pread(). Made me open up file ;)
Reviewed-by: Alison Schofield <[email protected]>
> --
> 2.39.0
>