Message ID | 20220303081428.12979-1-d.glazkov@omp.ru (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | KEYS: fix memory leak when reading certificate fails | expand |
On Thu, Mar 3, 2022 at 7:49 PM Denis Glazkov <d.glazkov@omp.ru> wrote: > > In the `read_file` function of `insert-sys-cert.c` script, if > the data is read incorrectly, the memory allocated for the `buf` > array is not freed. > > Fixes: c4c361059585 ("KEYS: Reserve an extra certificate symbol for inserting without recompiling") > Signed-off-by: Denis Glazkov <d.glazkov@omp.ru> > --- > scripts/insert-sys-cert.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/scripts/insert-sys-cert.c b/scripts/insert-sys-cert.c > index 8902836c2342..b98a0b12f16f 100644 > --- a/scripts/insert-sys-cert.c > +++ b/scripts/insert-sys-cert.c > @@ -251,6 +251,7 @@ static char *read_file(char *file_name, int *size) > if (read(fd, buf, *size) != *size) { > perror("File read failed"); > close(fd); > + free(buf); > return NULL; > } > close(fd); Hi Denis, There is another issue related to variable buf. On the success path, buf will be assigned to variable cert in the main function. And cert is not free when the main function exits. > -- > 2.25.1
diff --git a/scripts/insert-sys-cert.c b/scripts/insert-sys-cert.c index 8902836c2342..b98a0b12f16f 100644 --- a/scripts/insert-sys-cert.c +++ b/scripts/insert-sys-cert.c @@ -251,6 +251,7 @@ static char *read_file(char *file_name, int *size) if (read(fd, buf, *size) != *size) { perror("File read failed"); close(fd); + free(buf); return NULL; } close(fd);
In the `read_file` function of `insert-sys-cert.c` script, if the data is read incorrectly, the memory allocated for the `buf` array is not freed. Fixes: c4c361059585 ("KEYS: Reserve an extra certificate symbol for inserting without recompiling") Signed-off-by: Denis Glazkov <d.glazkov@omp.ru> --- scripts/insert-sys-cert.c | 1 + 1 file changed, 1 insertion(+)