scan-build: fix resource leaks on error paths

clientserver.c: close the --early-input-file FILE* on the
fstat/oversize/early-EOF error returns; it was only closed on the
success path.
getgroups.c: free the gid list before returning.
This commit is contained in:
Andrew Tridgell
2026-06-12 10:53:10 +10:00
parent 8118744f2a
commit 4e67f87479
2 changed files with 5 additions and 0 deletions

View File

@@ -270,11 +270,14 @@ int start_inband_exchange(int f_in, int f_out, const char *user, int argc, char
FILE *f = fopen(early_input_file, "rb");
if (!f || do_fstat(fileno(f), &st) < 0) {
rsyserr(FERROR, errno, "failed to open %s", early_input_file);
if (f)
fclose(f);
return -1;
}
early_input_len = st.st_size;
if (early_input_len > (int)sizeof line) {
rprintf(FERROR, "%s is > %d bytes.\n", early_input_file, (int)sizeof line);
fclose(f);
return -1;
}
if (early_input_len > 0) {
@@ -283,6 +286,7 @@ int start_inband_exchange(int f_in, int f_out, const char *user, int argc, char
int len;
if (feof(f)) {
rprintf(FERROR, "Early EOF in %s\n", early_input_file);
fclose(f);
return -1;
}
len = fread(line, 1, early_input_len, f);

View File

@@ -57,5 +57,6 @@
printf("%lu", (unsigned long)gid);
printf("\n");
free(list);
return 0;
}