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:
Juergen Lock 2010-11-22 23:27:20 -02:00 committed by Marcelo Roberto Jimenez
parent 252a25af32
commit 25641ac51a
5 changed files with 38 additions and 3 deletions

View File

@ -237,6 +237,39 @@ Version 1.8.0
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>
Added the convenience function UpnpResolveURL2() to upnptools.c.

1
THANKS
View File

@ -36,6 +36,7 @@ exempt of errors.
- John Dennis
- Jonathan Casiot (no_dice)
- Josh Carroll
- Juergen Lock
- Keith Brindley
- Leuk_He
- Loigu

View File

@ -176,6 +176,7 @@ static UPNP_INLINE int notify_send_and_recv(
int err_code;
int timeout;
SOCKINFO info;
const char *CRLF = "\r\n";
/* connect */
UpnpPrintf(UPNP_ALL, GENA, __FILE__, __LINE__,
@ -209,7 +210,7 @@ static UPNP_INLINE int notify_send_and_recv(
"bbb",
start_msg.buf, start_msg.length,
propertySet, strlen(propertySet),
"\r\n", 2);
CRLF, sizeof CRLF);
if (ret_code) {
membuffer_destroy(&start_msg);
sock_destroy(&info, SD_BOTH);

View File

@ -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 */
UpnpFileInfo_get_ContentType(finfo), /* content type */
RespInstr, /* language info */

View File

@ -479,7 +479,7 @@ Format types:
'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
'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
*
* \return