From: Filipe Brandenburger Date: Thu, 7 Jun 2018 21:32:07 +0000 (-0700) Subject: scsi_id: use _cleanup_free_ on buffer allocated by get_file_options X-Git-Tag: v239~113 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3ad97058247a3f7f274a515d279e9b8428de002e;p=thirdparty%2Fsystemd.git scsi_id: use _cleanup_free_ on buffer allocated by get_file_options This simplifies the code a bit and hopefully fixes Coverity finding CID 1382966. There was not actually a resource leak here (Coverity seemed to be confused by thinking log_oom() could actually return 0), but the fix doesn't hurt and should make this code more resilient to future refactorings. Tested: builds fine, manually called scsi_id, seems to work ok. --- diff --git a/src/udev/scsi_id/scsi_id.c b/src/udev/scsi_id/scsi_id.c index 217fb2f8abe..59ef121cbe6 100644 --- a/src/udev/scsi_id/scsi_id.c +++ b/src/udev/scsi_id/scsi_id.c @@ -164,7 +164,7 @@ static int get_file_options(struct udev *udev, const char *vendor, const char *model, int *argc, char ***newargv) { - char *buffer; + _cleanup_free_ char *buffer = NULL; _cleanup_fclose_ FILE *f; char *buf; char *str1; @@ -295,14 +295,13 @@ static int get_file_options(struct udev *udev, (*newargv)[c] = buffer; for (c = 1; c < *argc; c++) (*newargv)[c] = strsep(&buffer, " \t"); + buffer = NULL; } } else { /* No matches */ retval = 1; } } - if (retval != 0) - free(buffer); return retval; }