Bug 7472 - Change line terminator for header to be RFC-compliant
authorTilghman Lesher <tilghman@meg.abyt.es>
Tue, 4 Jul 2006 00:16:33 +0000 (00:16 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Tue, 4 Jul 2006 00:16:33 +0000 (00:16 +0000)
Also, check to ensure the memory allocation didn't fail.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@36892 65c4cc65-6c06-0410-ace0-fbb531ad65f3

manager.c

index 9ad15d9..d2c25ec 100644 (file)
--- a/manager.c
+++ b/manager.c
@@ -2169,7 +2169,11 @@ static char *generic_http_callback(int format, struct sockaddr_in *requestor, co
 
        if (!s) {
                /* Create new session */
-               s = calloc(1, sizeof(struct mansession));
+               s = ast_calloc(1, sizeof(struct mansession));
+               if (!s) {
+                       *status = 500;
+                       goto generic_callback_out;
+               }
                memcpy(&s->sin, requestor, sizeof(s->sin));
                s->fd = -1;
                s->waiting_thread = AST_PTHREADT_NULL;
@@ -2203,7 +2207,7 @@ static char *generic_http_callback(int format, struct sockaddr_in *requestor, co
        memset(&m, 0, sizeof(m));
        if (s) {
                char tmp[80];
-               ast_build_string(&c, &len, "Content-type: text/%s\n", contenttype[format]);
+               ast_build_string(&c, &len, "Content-type: text/%s\r\n", contenttype[format]);
                sprintf(tmp, "%08lx", s->managerid);
                ast_build_string(&c, &len, "%s\r\n", ast_http_setcookie("mansession_id", tmp, httptimeout, cookie, sizeof(cookie)));
                if (format == FORMAT_HTML)
@@ -2280,6 +2284,7 @@ static char *generic_http_callback(int format, struct sockaddr_in *requestor, co
        
        if (blastaway)
                destroy_session(s);
+generic_callback_out:
        if (*status != 200)
                return ast_http_error(500, "Server Error", NULL, "Internal Server Error (out of memory)\n"); 
        return retval;