Two fixes from Juergen Lock <nox(at)jelal.kn-bremen.de>:
1. varargs: pass size of CRLF as size_t not as int: --- upnp/src/gena/gena_device.c.orig +++ upnp/src/gena/gena_device.c @@ -225,7 +225,7 @@ static UPNP_INLINE int notify_send_and_r "bbb", start_msg.buf, start_msg.length, propertySet, strlen(propertySet), - "\r\n", 2); + "\r\n", sizeof "\r\n" - 1); if (ret_code) { membuffer_destroy(&start_msg); sock_destroy(&info, SD_BOTH); 2. Remove "b" arg here, there is no buffer passed: (this caused a pointer to be interpreted as a buffer size to be alloc'd/copied, hence the 32 GB.) --- upnp/src/genlib/net/http/webserver.c.orig +++ upnp/src/genlib/net/http/webserver.c @@ -1262,7 +1262,7 @@ static int process_request( // Content-Range: bytes 222-3333/4000 HTTP_PARTIAL_CONTENT // Transfer-Encoding: chunked if (http_MakeMessage(headers, resp_major, resp_minor, - "R" "TLD" "s" "tcS" "b" "Xc" "sCc", + "R" "TLD" "s" "tcS" "Xc" "sCc", HTTP_OK, // status code finfo.content_type, // content type RespInstr, // language info (cherry picked from commit ed0ebe15883a46dd4ad885cce77db467db68306f)
This commit is contained in:
parent
252a25af32
commit
25641ac51a
33
ChangeLog
33
ChangeLog
@ -237,6 +237,39 @@ Version 1.8.0
|
|||||||
Version 1.6.10
|
Version 1.6.10
|
||||||
*******************************************************************************
|
*******************************************************************************
|
||||||
|
|
||||||
|
2010-11-22 Marcelo Roberto Jimenez <mroberto(at)users.sourceforge.net>
|
||||||
|
|
||||||
|
Two fixes from Juergen Lock <nox(at)jelal.kn-bremen.de>:
|
||||||
|
|
||||||
|
1. varargs: pass size of CRLF as size_t not as int:
|
||||||
|
|
||||||
|
--- upnp/src/gena/gena_device.c.orig
|
||||||
|
+++ upnp/src/gena/gena_device.c
|
||||||
|
@@ -225,7 +225,7 @@ static UPNP_INLINE int notify_send_and_r
|
||||||
|
"bbb",
|
||||||
|
start_msg.buf, start_msg.length,
|
||||||
|
propertySet, strlen(propertySet),
|
||||||
|
- "\r\n", 2);
|
||||||
|
+ "\r\n", sizeof "\r\n" - 1);
|
||||||
|
if (ret_code) {
|
||||||
|
membuffer_destroy(&start_msg);
|
||||||
|
sock_destroy(&info, SD_BOTH);
|
||||||
|
|
||||||
|
2. Remove "b" arg here, there is no buffer passed: (this caused a pointer
|
||||||
|
to be interpreted as a buffer size to be alloc'd/copied, hence the 32 GB.)
|
||||||
|
|
||||||
|
--- upnp/src/genlib/net/http/webserver.c.orig
|
||||||
|
+++ upnp/src/genlib/net/http/webserver.c
|
||||||
|
@@ -1262,7 +1262,7 @@ static int process_request(
|
||||||
|
// Content-Range: bytes 222-3333/4000 HTTP_PARTIAL_CONTENT
|
||||||
|
// Transfer-Encoding: chunked
|
||||||
|
if (http_MakeMessage(headers, resp_major, resp_minor,
|
||||||
|
- "R" "TLD" "s" "tcS" "b" "Xc" "sCc",
|
||||||
|
+ "R" "TLD" "s" "tcS" "Xc" "sCc",
|
||||||
|
HTTP_OK, // status code
|
||||||
|
finfo.content_type, // content type
|
||||||
|
RespInstr, // language info
|
||||||
|
|
||||||
2010-11-15 Marcelo Roberto Jimenez <mroberto(at)users.sourceforge.net>
|
2010-11-15 Marcelo Roberto Jimenez <mroberto(at)users.sourceforge.net>
|
||||||
|
|
||||||
Added the convenience function UpnpResolveURL2() to upnptools.c.
|
Added the convenience function UpnpResolveURL2() to upnptools.c.
|
||||||
|
1
THANKS
1
THANKS
@ -36,6 +36,7 @@ exempt of errors.
|
|||||||
- John Dennis
|
- John Dennis
|
||||||
- Jonathan Casiot (no_dice)
|
- Jonathan Casiot (no_dice)
|
||||||
- Josh Carroll
|
- Josh Carroll
|
||||||
|
- Juergen Lock
|
||||||
- Keith Brindley
|
- Keith Brindley
|
||||||
- Leuk_He
|
- Leuk_He
|
||||||
- Loigu
|
- Loigu
|
||||||
|
@ -176,6 +176,7 @@ static UPNP_INLINE int notify_send_and_recv(
|
|||||||
int err_code;
|
int err_code;
|
||||||
int timeout;
|
int timeout;
|
||||||
SOCKINFO info;
|
SOCKINFO info;
|
||||||
|
const char *CRLF = "\r\n";
|
||||||
|
|
||||||
/* connect */
|
/* connect */
|
||||||
UpnpPrintf(UPNP_ALL, GENA, __FILE__, __LINE__,
|
UpnpPrintf(UPNP_ALL, GENA, __FILE__, __LINE__,
|
||||||
@ -209,7 +210,7 @@ static UPNP_INLINE int notify_send_and_recv(
|
|||||||
"bbb",
|
"bbb",
|
||||||
start_msg.buf, start_msg.length,
|
start_msg.buf, start_msg.length,
|
||||||
propertySet, strlen(propertySet),
|
propertySet, strlen(propertySet),
|
||||||
"\r\n", 2);
|
CRLF, sizeof CRLF);
|
||||||
if (ret_code) {
|
if (ret_code) {
|
||||||
membuffer_destroy(&start_msg);
|
membuffer_destroy(&start_msg);
|
||||||
sock_destroy(&info, SD_BOTH);
|
sock_destroy(&info, SD_BOTH);
|
||||||
|
@ -1262,7 +1262,7 @@ static int process_request(
|
|||||||
/* Content-Range: bytes 222-3333/4000 HTTP_PARTIAL_CONTENT */
|
/* Content-Range: bytes 222-3333/4000 HTTP_PARTIAL_CONTENT */
|
||||||
/* Transfer-Encoding: chunked */
|
/* Transfer-Encoding: chunked */
|
||||||
if (http_MakeMessage(headers, resp_major, resp_minor,
|
if (http_MakeMessage(headers, resp_major, resp_minor,
|
||||||
"R" "TLD" "s" "tcS" "b" "Xc" "sCc",
|
"R" "TLD" "s" "tcS" "Xc" "sCc",
|
||||||
HTTP_OK, /* status code */
|
HTTP_OK, /* status code */
|
||||||
UpnpFileInfo_get_ContentType(finfo), /* content type */
|
UpnpFileInfo_get_ContentType(finfo), /* content type */
|
||||||
RespInstr, /* language info */
|
RespInstr, /* language info */
|
||||||
|
@ -479,7 +479,7 @@ Format types:
|
|||||||
'T': arg = char * content_type; -- format e.g: "text/html"; content-type header
|
'T': arg = char * content_type; -- format e.g: "text/html"; content-type header
|
||||||
't': arg = time_t * gmt_time -- appends time in RFC 1123 fmt
|
't': arg = time_t * gmt_time -- appends time in RFC 1123 fmt
|
||||||
'U': (no args) -- appends HTTP USER-AGENT: header
|
'U': (no args) -- appends HTTP USER-AGENT: header
|
||||||
'X': arg = const char -- useragent; "redsonic" HTTP X-User-Agent: useragent
|
'X': arg = const char * -- useragent; "redsonic" HTTP X-User-Agent: useragent
|
||||||
\endverbatim
|
\endverbatim
|
||||||
*
|
*
|
||||||
* \return
|
* \return
|
||||||
|
Loading…
x
Reference in New Issue
Block a user