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.
20 lines
810 B
20 lines
810 B
5 years ago
|
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,
|