Fix a hard-to-trigger memory leak in log_credential status. Found by Coverity scan. CID 349.

svn:r17484
This commit is contained in:
Nick Mathewson 2008-12-05 01:29:59 +00:00
parent ea975ddeee
commit 2be5215181
2 changed files with 8 additions and 6 deletions

View File

@ -34,6 +34,9 @@ Changes in version 0.2.1.8-alpha - 2008-??-??
- Correct handling of possible malformed authority signing key
certificates with internal signature types. Fixes bug 880.
Bugfix on 0.2.0.3-alpha.
- Fix a hard-to-trigger resource leak when logging credential status.
CID 349.
-
o Minor features:
- Report the case where all signatures in a detached set are rejected

View File

@ -1049,17 +1049,17 @@ log_credential_status(void)
strerror(errno));
return -1;
} else {
int i;
int i, retval = 0;
char *strgid;
char *s = NULL;
int formatting_error = 0;
smartlist_t *elts = smartlist_create();
for (i = 0; i<ngids; i++) {
strgid = tor_malloc(11);
if (tor_snprintf(strgid, 11, "%u", (unsigned)sup_gids[i]) == -1) {
if (tor_snprintf(strgid, 11, "%u", (unsigned)sup_gids[i]) < 0) {
log_warn(LD_GENERAL, "Error printing supplementary GIDs");
formatting_error = 1;
tor_free(strgid);
retval = -1;
goto error;
}
smartlist_add(elts, strgid);
@ -1077,8 +1077,7 @@ log_credential_status(void)
});
smartlist_free(elts);
if (formatting_error)
return -1;
return retval;
}
#endif