s4-smb: smbsrv_blob_push_string() can return -1
authorAndrew Tridgell <tridge@samba.org>
Fri, 10 Sep 2010 10:17:39 +0000 (20:17 +1000)
committerAndrew Tridgell <tridge@samba.org>
Wed, 15 Sep 2010 05:39:34 +0000 (15:39 +1000)
need to use ssize_t, not size_t for error handling

source4/smb_server/blob.c

index adc223ec7d832c5e35f261c9fe69697ae3beecfa..62ee61d6b99a60fc2e71e8acb98309b95314b250 100644 (file)
@@ -100,14 +100,14 @@ size_t smbsrv_blob_pull_string(struct request_bufinfo *bufinfo,
   push a string into the data section of a trans2 request
   return the number of bytes consumed in the output
 */
-size_t smbsrv_blob_push_string(TALLOC_CTX *mem_ctx,
-                              DATA_BLOB *blob,
-                              uint32_t len_offset,
-                              uint32_t offset,
-                              const char *str,
-                              int dest_len,
-                              int default_flags,
-                              int flags)
+static ssize_t smbsrv_blob_push_string(TALLOC_CTX *mem_ctx,
+                                      DATA_BLOB *blob,
+                                      uint32_t len_offset,
+                                      uint32_t offset,
+                                      const char *str,
+                                      int dest_len,
+                                      int default_flags,
+                                      int flags)
 {
        int alignment = 0, ret = 0, pkt_len;
 
@@ -142,6 +142,9 @@ size_t smbsrv_blob_push_string(TALLOC_CTX *mem_ctx,
        } else {
                ret = push_string(blob->data + offset, str, dest_len, flags);
        }
+       if (ret == -1) {
+               return -1;
+       }
 
        /* sometimes the string needs to be terminated, but the length
           on the wire must not include the termination! */