8d7ee0
diff -up openslp-2.0.0/slpd/slpd_process.c.orig openslp-2.0.0/slpd/slpd_process.c
8d7ee0
--- openslp-2.0.0/slpd/slpd_process.c.orig	2018-05-09 13:08:06.185104375 +0200
8d7ee0
+++ openslp-2.0.0/slpd/slpd_process.c	2018-05-09 13:07:21.017095089 +0200
8d7ee0
@@ -462,6 +462,15 @@ static int ProcessSrvRqst(SLPMessage * m
8d7ee0
          message->body.srvrqst.srvtype, 23, SLP_DA_SERVICE_TYPE) == 0)
8d7ee0
    {
8d7ee0
       errorcode = ProcessDASrvRqst(message, sendbuf, errorcode);
8d7ee0
+
8d7ee0
+      if (result != *sendbuf)
8d7ee0
+      {
8d7ee0
+         // The pointer stored at *sendbuf can be modified by a realloc
8d7ee0
+         // operation in ProcessDASrvRqst().  Fix up the local copy of
8d7ee0
+         // that pointer if necessary.
8d7ee0
+         result = *sendbuf;
8d7ee0
+      }
8d7ee0
+
8d7ee0
       if (errorcode == 0)
8d7ee0
       {
8d7ee0
          /* Since we have an errorcode of 0, we were successful,