config.c: Avoid leaking file handle if file is 0 bytes (#12828)

If fopen() is successful and redis_fstat determines that the file is 0
bytes, the file handle stored in fp will leak. This change closes the
filehandle stored in fp if the file is 0 bytes.

Second attempt at fixing Coverity 390029

This is a follow-up to #12796
This commit is contained in:
Moshe Kaplan 2023-12-27 01:53:56 -05:00 committed by GitHub
parent bef5715374
commit fa751f9bef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 1 deletions

View File

@ -1128,7 +1128,14 @@ struct rewriteConfigState *rewriteConfigReadOldFile(char *path) {
int linenum = -1;
struct rewriteConfigState *state = rewriteConfigCreateState();
if (fp == NULL || sb.st_size == 0) return state;
if (fp == NULL) {
return state;
}
if (sb.st_size == 0) {
fclose(fp);
return state;
}
/* Load the file content */
sds config = sdsnewlen(SDS_NOINIT,sb.st_size);