Message ID | 20240814210109.15427-1-okorniev@redhat.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [1/1] rpcdebug: fix memory allocation size | expand |
On 8/14/24 5:01 PM, Olga Kornievskaia wrote: > Memory isn't allocated enough to hold the null terminator. > > Valgring complains about invalid memory access: > > [aglo@localhost rpcdebug]$ valgrind ./rpcdebug > ==222602== Memcheck, a memory error detector > ==222602== Copyright (C) 2002-2024, and GNU GPL'd, by Julian Seward et al. > ==222602== Using Valgrind-3.23.0 and LibVEX; rerun with -h for copyright info > ==222602== Command: ./rpcdebug > ==222602== > ==222602== Invalid write of size 1 > ==222602== at 0x4871218: strcpy (vg_replace_strmem.c:564) > ==222602== by 0x400CA3: main (rpcdebug.c:62) > ==222602== Address 0x4a89048 is 0 bytes after a block of size 8 alloc'd > ==222602== at 0x4868388: malloc (vg_replace_malloc.c:446) > ==222602== by 0x400C77: main (rpcdebug.c:57) > ==222602== > ==222602== Invalid read of size 1 > ==222602== at 0x48710E4: __GI_strlen (vg_replace_strmem.c:506) > ==222602== by 0x492FA7F: __vfprintf_internal (vfprintf-internal.c:1647) > ==222602== by 0x49302F3: buffered_vfprintf (vfprintf-internal.c:2296) > ==222602== by 0x492F21F: __vfprintf_internal (vfprintf-internal.c:1377) > ==222602== by 0x491BC93: fprintf (fprintf.c:32) > ==222602== by 0x40103F: main (rpcdebug.c:100) > ==222602== Address 0x4a89048 is 0 bytes after a block of size 8 alloc'd > ==222602== at 0x4868388: malloc (vg_replace_malloc.c:446) > > Signed-off-by: Olga Kornievskaia <okorniev@redhat.com> Committed... steved. > --- > tools/rpcdebug/rpcdebug.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/rpcdebug/rpcdebug.c b/tools/rpcdebug/rpcdebug.c > index ec05179e..1f935223 100644 > --- a/tools/rpcdebug/rpcdebug.c > +++ b/tools/rpcdebug/rpcdebug.c > @@ -54,7 +54,7 @@ main(int argc, char **argv) > char * module = NULL; > int c; > > - cdename = malloc(strlen(basename(argv[0]))); > + cdename = malloc(strlen(basename(argv[0])) + 1); > if (cdename == NULL) { > fprintf(stderr, "failed in malloc\n"); > exit(1);
diff --git a/tools/rpcdebug/rpcdebug.c b/tools/rpcdebug/rpcdebug.c index ec05179e..1f935223 100644 --- a/tools/rpcdebug/rpcdebug.c +++ b/tools/rpcdebug/rpcdebug.c @@ -54,7 +54,7 @@ main(int argc, char **argv) char * module = NULL; int c; - cdename = malloc(strlen(basename(argv[0]))); + cdename = malloc(strlen(basename(argv[0])) + 1); if (cdename == NULL) { fprintf(stderr, "failed in malloc\n"); exit(1);
Memory isn't allocated enough to hold the null terminator. Valgring complains about invalid memory access: [aglo@localhost rpcdebug]$ valgrind ./rpcdebug ==222602== Memcheck, a memory error detector ==222602== Copyright (C) 2002-2024, and GNU GPL'd, by Julian Seward et al. ==222602== Using Valgrind-3.23.0 and LibVEX; rerun with -h for copyright info ==222602== Command: ./rpcdebug ==222602== ==222602== Invalid write of size 1 ==222602== at 0x4871218: strcpy (vg_replace_strmem.c:564) ==222602== by 0x400CA3: main (rpcdebug.c:62) ==222602== Address 0x4a89048 is 0 bytes after a block of size 8 alloc'd ==222602== at 0x4868388: malloc (vg_replace_malloc.c:446) ==222602== by 0x400C77: main (rpcdebug.c:57) ==222602== ==222602== Invalid read of size 1 ==222602== at 0x48710E4: __GI_strlen (vg_replace_strmem.c:506) ==222602== by 0x492FA7F: __vfprintf_internal (vfprintf-internal.c:1647) ==222602== by 0x49302F3: buffered_vfprintf (vfprintf-internal.c:2296) ==222602== by 0x492F21F: __vfprintf_internal (vfprintf-internal.c:1377) ==222602== by 0x491BC93: fprintf (fprintf.c:32) ==222602== by 0x40103F: main (rpcdebug.c:100) ==222602== Address 0x4a89048 is 0 bytes after a block of size 8 alloc'd ==222602== at 0x4868388: malloc (vg_replace_malloc.c:446) Signed-off-by: Olga Kornievskaia <okorniev@redhat.com> --- tools/rpcdebug/rpcdebug.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)