From 2f81df9db9da187372b0c5d575904da723ae1fe1 Mon Sep 17 00:00:00 2001
From: "Rob Swindell (on Debian Linux)" <rob@synchro.net>
Date: Wed, 1 Jan 2025 19:57:25 -0800
Subject: [PATCH] Resolve some crashes/exceptions observed today when used by
 ircd.js

ircd.js kept crashing on startup on vert with these errors, right after it
logged:
Accepting new connection on port 6667
0832 Accepted new connection: 71.95.196.36 port 55646
[UNREG] Resolving IP: 71.95.196.36
---
 exec/load/dns.js | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/exec/load/dns.js b/exec/load/dns.js
index fcdb219665..fe91df3cca 100644
--- a/exec/load/dns.js
+++ b/exec/load/dns.js
@@ -211,10 +211,14 @@ DNS.prototype.handle_response = function(sock) {
 	var tmp;
 
 	function string_to_int16(str) {
+		if(!str)
+			return 0;
 		return ((ascii(str[0])<<8) | (ascii(str[1])));
 	}
 
 	function string_to_int32(str) {
+		if(!str)
+			return 0;
 		return ((ascii(str[0])<<24) | (ascii(str[1]) << 16) | (ascii(str[1]) << 8) | (ascii(str[1])));
 	}
 
@@ -393,6 +397,8 @@ DNS.prototype.handle_response = function(sock) {
 	delete this.outstanding[id];
 
 	ret.id = id;
+	if(!resp)
+		return null;
 	ret.response = !!(ascii(resp[2]) & 0x80);
 	if (!ret.response)
 		return null;
-- 
GitLab