18 lines
651 B
Diff
18 lines
651 B
Diff
|
diff --git a/dns64/dns64.c b/dns64/dns64.c
|
||
|
index c79bc9c..fc7827e 100644
|
||
|
--- a/dns64/dns64.c
|
||
|
+++ b/dns64/dns64.c
|
||
|
@@ -687,6 +687,12 @@ dns64_operate(struct module_qstate* qstate, enum module_ev event, int id,
|
||
|
/* Tag this query as being new and fall through. */
|
||
|
iq = (struct dns64_qstate*)regional_alloc(
|
||
|
qstate->region, sizeof(*iq));
|
||
|
+ if (!(iq = (struct dns64_qstate*)regional_alloc(
|
||
|
+ qstate->region, sizeof(*iq)))) {
|
||
|
+ log_err("out of memory");
|
||
|
+ qstate->ext_state[id] = module_error;
|
||
|
+ return;
|
||
|
+ }
|
||
|
qstate->minfo[id] = iq;
|
||
|
iq->state = DNS64_NEW_QUERY;
|
||
|
iq->started_no_cache_store = qstate->no_cache_store;
|