mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-09 10:32:13 -04:00
address NULL pointer dereferences
This commit is contained in:
parent
a48a612d25
commit
2de94dd4c4
1 changed files with 22 additions and 4 deletions
|
|
@ -1297,9 +1297,21 @@ dlz_newversion(const char *zone, void *dbdata, void **versionp) {
|
|||
* Create new transaction
|
||||
*/
|
||||
newtx = (mysql_transaction_t *)
|
||||
malloc(sizeof(mysql_transaction_t));
|
||||
calloc(1, sizeof(mysql_transaction_t));
|
||||
if (newtx == NULL) {
|
||||
result = ISC_R_NOMEMORY;
|
||||
goto cleanup;
|
||||
}
|
||||
newtx->zone = strdup(zone);
|
||||
if (newtx->zone == NULL) {
|
||||
result = ISC_R_NOMEMORY;
|
||||
goto cleanup;
|
||||
}
|
||||
newtx->zone_id = strdup(zone_id);
|
||||
if (newtx->zone_id == NULL) {
|
||||
result = ISC_R_NOMEMORY;
|
||||
goto cleanup;
|
||||
}
|
||||
newtx->dbi = get_dbi(state);
|
||||
newtx->next = NULL;
|
||||
|
||||
|
|
@ -1329,9 +1341,15 @@ dlz_newversion(const char *zone, void *dbdata, void **versionp) {
|
|||
*versionp = (void *) newtx;
|
||||
} else {
|
||||
dlz_mutex_unlock(&state->tx_mutex);
|
||||
free(newtx->zone);
|
||||
free(newtx->zone_id);
|
||||
free(newtx);
|
||||
if (newtx != NULL) {
|
||||
if (newtx->zone != NULL) {
|
||||
free(newtx->zone);
|
||||
}
|
||||
if (newtx->zone != NULL) {
|
||||
free(newtx->zone_id);
|
||||
}
|
||||
free(newtx);
|
||||
}
|
||||
}
|
||||
|
||||
return (result);
|
||||
|
|
|
|||
Loading…
Reference in a new issue