free on error cid#68

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24099 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2008-12-11 04:59:28 +00:00
parent a222d53b7f
commit 01720d42b1

View File

@@ -109,8 +109,10 @@ _krb5_n_fold(const void *str, size_t len, void *key, size_t size)
unsigned char *tmp = malloc(maxlen); unsigned char *tmp = malloc(maxlen);
unsigned char *buf = malloc(len); unsigned char *buf = malloc(len);
if (tmp == NULL || buf == NULL) if (tmp == NULL || buf == NULL) {
return ENOMEM; ret = ENOMEM;
goto out;
}
memcpy(buf, str, len); memcpy(buf, str, len);
memset(key, 0, size); memset(key, 0, size);
@@ -129,9 +131,13 @@ _krb5_n_fold(const void *str, size_t len, void *key, size_t size)
} }
} while(l != 0); } while(l != 0);
out: out:
if (buf) {
memset(buf, 0, len); memset(buf, 0, len);
free(buf); free(buf);
}
if (tmp) {
memset(tmp, 0, maxlen); memset(tmp, 0, maxlen);
free(tmp); free(tmp);
}
return ret; return ret;
} }