(file) Return to httpclient.c CVS log (file) (dir) Up to [OMI] / omi / http

Diff for /omi/http/httpclient.c between version 1.3 and 1.4

version 1.3, 2015/04/20 18:19:52 version 1.4, 2015/09/25 20:24:20
Line 33 
Line 33 
 #include <base/buf.h> #include <base/buf.h>
 #include <base/log.h> #include <base/log.h>
 #include <base/result.h> #include <base/result.h>
   #include <pal/intsafe.h>
 #include <pal/strings.h> #include <pal/strings.h>
 #include <pal/format.h> #include <pal/format.h>
 #include <pal/sleep.h> #include <pal/sleep.h>
Line 700 
Line 701 
         contentSize = 0;         contentSize = 0;
     }     }
  
       size_t allocSize = 0;
       if (SizeTAdd(sizeof(Page), contentSize, &allocSize) == S_OK &&
           SizeTAdd(allocSize, 1, &allocSize) == S_OK)
       {
     /* Allocate zero-terminated buffer */     /* Allocate zero-terminated buffer */
     handler->recvPage = (Page*)PAL_Malloc(sizeof (Page) + (size_t)contentSize + 1);          handler->recvPage = (Page*)PAL_Malloc(allocSize);
       }
       else
       {
           // Overflow
           return PRT_RETURN_FALSE;
       }
  
     if (handler->recvPage == NULL)     if (handler->recvPage == NULL)
     {     {
Line 947 
Line 958 
         return PRT_CONTINUE;         return PRT_CONTINUE;
     }     }
  
       size_t allocSize = 0;
       if (SizeTAdd(sizeof(Page), (size_t)chunkSize, &allocSize) == S_OK &&
           SizeTAdd(allocSize, 2 /*CR-LF*/ + 1 /* \0 */, &allocSize) == S_OK)
       {
     /* Allocate zero-terminated buffer */     /* Allocate zero-terminated buffer */
     handler->recvPage = (Page*)PAL_Malloc(sizeof(Page) + (size_t)chunkSize + 2 /*CR-LF*/ + 1 /* \0 */);          handler->recvPage = (Page*)PAL_Malloc(allocSize);
       }
       else
       {
           // Overflow
           return PRT_RETURN_FALSE;
       }
  
     if (!handler->recvPage)     if (!handler->recvPage)
         return PRT_RETURN_FALSE;         return PRT_RETURN_FALSE;
Line 1729 
Line 1750 
     /* calculate approximate page size */     /* calculate approximate page size */
     if (!verb)     if (!verb)
         verb = "POST";         verb = "POST";
   
     pageSize += sizeof(HTTP_HEADER_FORMAT) + 10; /* format + 10 digits of content length */     pageSize += sizeof(HTTP_HEADER_FORMAT) + 10; /* format + 10 digits of content length */
     pageSize += Strlen(verb);  
     pageSize += Strlen(uri);  
  
     if (headers)      if (SizeTAdd(pageSize, Strlen(verb), &pageSize) != S_OK ||
         pageSize += _GetHeadersSize(headers);          SizeTAdd(pageSize, Strlen(uri),  &pageSize) != S_OK ||
           SizeTAdd(pageSize, sizeof(Page), &pageSize) != S_OK ||
           (headers && SizeTAdd(pageSize, _GetHeadersSize(headers), &pageSize)) != S_OK)
       {
           // Overflow
           return 0;
       }
  
     page = (Page*)PAL_Malloc(pageSize + sizeof(Page));      page = (Page*)PAL_Malloc(pageSize);
  
     if (!page)     if (!page)
         return 0;         return 0;


Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

ViewCVS 0.9.2