Message ID | 1431686184-12609-1-git-send-email-colin.king@canonical.com |
---|---|
State | Accepted |
Headers | show |
On 05/15/2015 03:36 AM, Colin King wrote: > From: Colin Ian King <colin.king@canonical.com> > > cppcheck isn't quite so smart as CoverityScan so it continues to complain > about a potential free issue as a false positive. I've taken the liberty > to explicity set buffer to NULL to make the code clearer and this helps > cppcheck to understand the flow of control better. > > Signed-off-by: Colin Ian King <colin.king@canonical.com> > --- > src/acpica/fwts_acpica.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/src/acpica/fwts_acpica.c b/src/acpica/fwts_acpica.c > index 4a6baf6..9bfd0ae 100644 > --- a/src/acpica/fwts_acpica.c > +++ b/src/acpica/fwts_acpica.c > @@ -452,8 +452,10 @@ void fwts_acpica_vprintf(const char *fmt, va_list args) > buffer = malloc(buffer_len); > if (buffer) > strcpy(buffer, tmp); > - else > + else { > + buffer = NULL; > buffer_len = 0; > + } > } else { > char *new_buf; > > @@ -464,11 +466,12 @@ void fwts_acpica_vprintf(const char *fmt, va_list args) > strcat(buffer, tmp); > } else { > free(buffer); > + buffer = NULL; > buffer_len = 0; > } > } > > - if (buffer_len && index(buffer, '\n') != NULL) { > + if (buffer && index(buffer, '\n') != NULL) { > fwts_log_info(fwts_acpica_fw, "%s", buffer); > free(buffer); > buffer_len = 0; > Acked-by: Alex Hung <alex.hung@canonical.com>
On 2015年05月15日 18:36, Colin King wrote: > From: Colin Ian King <colin.king@canonical.com> > > cppcheck isn't quite so smart as CoverityScan so it continues to complain > about a potential free issue as a false positive. I've taken the liberty > to explicity set buffer to NULL to make the code clearer and this helps > cppcheck to understand the flow of control better. > > Signed-off-by: Colin Ian King <colin.king@canonical.com> > --- > src/acpica/fwts_acpica.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/src/acpica/fwts_acpica.c b/src/acpica/fwts_acpica.c > index 4a6baf6..9bfd0ae 100644 > --- a/src/acpica/fwts_acpica.c > +++ b/src/acpica/fwts_acpica.c > @@ -452,8 +452,10 @@ void fwts_acpica_vprintf(const char *fmt, va_list args) > buffer = malloc(buffer_len); > if (buffer) > strcpy(buffer, tmp); > - else > + else { > + buffer = NULL; > buffer_len = 0; > + } > } else { > char *new_buf; > > @@ -464,11 +466,12 @@ void fwts_acpica_vprintf(const char *fmt, va_list args) > strcat(buffer, tmp); > } else { > free(buffer); > + buffer = NULL; > buffer_len = 0; > } > } > > - if (buffer_len && index(buffer, '\n') != NULL) { > + if (buffer && index(buffer, '\n') != NULL) { > fwts_log_info(fwts_acpica_fw, "%s", buffer); > free(buffer); > buffer_len = 0; Acked-by: Ivan Hu<ivan.hu@canonical.com>
diff --git a/src/acpica/fwts_acpica.c b/src/acpica/fwts_acpica.c index 4a6baf6..9bfd0ae 100644 --- a/src/acpica/fwts_acpica.c +++ b/src/acpica/fwts_acpica.c @@ -452,8 +452,10 @@ void fwts_acpica_vprintf(const char *fmt, va_list args) buffer = malloc(buffer_len); if (buffer) strcpy(buffer, tmp); - else + else { + buffer = NULL; buffer_len = 0; + } } else { char *new_buf; @@ -464,11 +466,12 @@ void fwts_acpica_vprintf(const char *fmt, va_list args) strcat(buffer, tmp); } else { free(buffer); + buffer = NULL; buffer_len = 0; } } - if (buffer_len && index(buffer, '\n') != NULL) { + if (buffer && index(buffer, '\n') != NULL) { fwts_log_info(fwts_acpica_fw, "%s", buffer); free(buffer); buffer_len = 0;