commit - 2edc2f9dc130b3033b3ac7fe72754b2e6ef15dc7
commit + f97edf0cbcf2ee1ea1d71a162699f0be79bd0400
blob - 1df2b67a5d1be7e6d8c93905c0833dd40165bc3b
blob + 1afcaaffa734eb472002229d279079cb970029da
--- lib/repository.c
+++ lib/repository.c
got_repo_pack_fds_open(int **pack_fds)
{
const struct got_error *err = NULL;
- int i, pack_fds_tmp[GOT_PACK_NUM_TEMPFILES];
+ int i, *pack_fds_tmp;
+ pack_fds_tmp = calloc(GOT_PACK_NUM_TEMPFILES, sizeof(int));
+ if (pack_fds_tmp == NULL)
+ return got_error_from_errno("calloc");
*pack_fds = calloc(GOT_PACK_NUM_TEMPFILES, sizeof(**pack_fds));
- if (*pack_fds == NULL)
+ if (*pack_fds == NULL) {
+ free(pack_fds_tmp);
return got_error_from_errno("calloc");
+ }
for (i = 0; i < GOT_PACK_NUM_TEMPFILES; i++) {
pack_fds_tmp[i] = got_opentempfd();
return err;
}
}
- memcpy(*pack_fds, pack_fds_tmp, sizeof(pack_fds_tmp));
+ memcpy(*pack_fds, pack_fds_tmp, GOT_PACK_NUM_TEMPFILES * sizeof(int));
return err;
}