diff --git a/makedbm/makedbm.c b/makedbm/makedbm.c
index c69f3d7..2a4196e 100644
--- a/makedbm/makedbm.c
+++ b/makedbm/makedbm.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1996-2006, 2011, 2014 Thorsten Kukuk
+/* Copyright (c) 1996-2006, 2011, 2014, 2024 Thorsten Kukuk
    Author: Thorsten Kukuk <kukuk@suse.de>
 
    The YP Server is free software; you can redistribute it and/or
@@ -595,7 +595,15 @@ get_canonical_hostname (const char *hostname)
     }
 
   if (host == NULL)
-    host = strdup (res0->ai_canonname);
+    {
+      if (res0->ai_canonname == NULL)
+	{
+	  fprintf (stderr, "makedbm: '%s' is not resolvable\n",
+		   hostname);
+	  exit (1);
+	}
+      host = strdup (res0->ai_canonname);
+    }
 
   freeaddrinfo (res0);
 
diff --git a/yphelper/yphelper.c b/yphelper/yphelper.c
index cd3ac7c..f32ad7f 100644
--- a/yphelper/yphelper.c
+++ b/yphelper/yphelper.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1999, 2001, 2002, 2011, 2013, 2014 Thorsten Kukuk
+/* Copyright (c) 1999, 2001, 2002, 2011, 2013, 2014, 2024 Thorsten Kukuk
    Author: Thorsten Kukuk <kukuk@suse.de>
 
    The YP Server is free software; you can redistribute it and/or
@@ -170,7 +170,15 @@ get_canonical_hostname (const char *hostname)
     }
 
   if (host == NULL)
-    host = strdup (res0->ai_canonname);
+    {
+      if (res0->ai_canonname == NULL)
+	{
+	  fprintf (stderr, "yphelper: '%s' is not resolvable\n",
+		   hostname);
+	  exit (1);
+	}
+      host = strdup (res0->ai_canonname);
+    }
 
   freeaddrinfo (res0);
 
diff --git a/yppush/yppush.c b/yppush/yppush.c
index f919d01..d937b84 100644
--- a/yppush/yppush.c
+++ b/yppush/yppush.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1996-2005, 2014, 2015, 2016 Thorsten Kukuk
+/* Copyright (c) 1996-2005, 2014-2016, 2024 Thorsten Kukuk
    Author: Thorsten Kukuk <kukuk@suse.de>
 
    The YP Server is free software; you can redistribute it and/or
@@ -688,7 +688,15 @@ get_canonical_hostname (const char *hostname)
     }
 
   if (host == NULL)
-    host = strdup (res0->ai_canonname);
+    {
+      if (res0->ai_canonname == NULL)
+	{
+	  fprintf (stderr, "yppush: '%s' is not resolvable\n",
+		   hostname);
+	  exit (1);
+	}
+      host = strdup (res0->ai_canonname);
+    }
 
   freeaddrinfo (res0);
 
