You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
19 lines
810 B
19 lines
810 B
diff -up openslp-2.0.0/slpd/slpd_process.c.orig openslp-2.0.0/slpd/slpd_process.c |
|
--- openslp-2.0.0/slpd/slpd_process.c.orig 2018-05-09 13:08:06.185104375 +0200 |
|
+++ openslp-2.0.0/slpd/slpd_process.c 2018-05-09 13:07:21.017095089 +0200 |
|
@@ -462,6 +462,15 @@ static int ProcessSrvRqst(SLPMessage * m |
|
message->body.srvrqst.srvtype, 23, SLP_DA_SERVICE_TYPE) == 0) |
|
{ |
|
errorcode = ProcessDASrvRqst(message, sendbuf, errorcode); |
|
+ |
|
+ if (result != *sendbuf) |
|
+ { |
|
+ // The pointer stored at *sendbuf can be modified by a realloc |
|
+ // operation in ProcessDASrvRqst(). Fix up the local copy of |
|
+ // that pointer if necessary. |
|
+ result = *sendbuf; |
|
+ } |
|
+ |
|
if (errorcode == 0) |
|
{ |
|
/* Since we have an errorcode of 0, we were successful,
|
|
|