diff --git a/src/d_deh.c b/src/d_deh.c index 2e1b7f81..4c096fe2 100644 --- a/src/d_deh.c +++ b/src/d_deh.c @@ -3320,7 +3320,10 @@ boolean deh_GetData(char *s, char *k, long *l, char **strval, FILE *fpout) if (*t == '=') break; buffer[i] = *t; // copy it } - buffer[--i] = '\0'; // terminate the key before the '=' + if (i > 0) + { + buffer[--i] = '\0'; // terminate the key before the '=' + } if (!*t) // end of string with no equal sign { okrc = false; diff --git a/src/net_query.c b/src/net_query.c index d04f242d..def76011 100644 --- a/src/net_query.c +++ b/src/net_query.c @@ -324,7 +324,7 @@ static void NET_Query_ParseResponse(net_addr_t *addr, net_packet_t *packet, target = GetTargetForAddr(addr, true); broadcast_target = GetTargetForAddr(NULL, false); target->state = QUERY_TARGET_QUERIED; - target->query_time = broadcast_target->query_time; + target->query_time = broadcast_target ? broadcast_target->query_time : 0; } if (target->state != QUERY_TARGET_RESPONDED)