]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
util/streaming: improve error handling
authorEric Leblond <el@stamus-networks.com>
Thu, 19 Aug 2021 09:21:21 +0000 (11:21 +0200)
committerJeff Lucovsky <jeff@lucovsky.org>
Sat, 15 Jan 2022 13:01:18 +0000 (08:01 -0500)
It differentiates memory error than regular ones.

(cherry picked from commit 0e70958e67398f599b77ba991dc631e025cae5f4)

src/util-streaming-buffer.c

index 4822e94af6dcb1de65b31c6996b25a93790a01f6..a12fb2da6e678dca95a18b0bc6338fe303f851af 100644 (file)
@@ -679,6 +679,10 @@ int StreamingBufferAppendNoTrack(StreamingBuffer *sb,
 
 /**
  *  \param offset offset relative to StreamingBuffer::stream_offset
+ *
+ *  \return 0 in case of success
+ *  \return -1 on memory allocation errors
+ *  \return negative value on other errors
  */
 int StreamingBufferInsertAt(StreamingBuffer *sb, StreamingBufferSegment *seg,
                             const uint8_t *data, uint32_t data_len,
@@ -687,7 +691,7 @@ int StreamingBufferInsertAt(StreamingBuffer *sb, StreamingBufferSegment *seg,
     BUG_ON(seg == NULL);
 
     if (offset < sb->stream_offset)
-        return -1;
+        return -2;
 
     if (sb->buf == NULL) {
         if (InitBuffer(sb) == -1)
@@ -706,7 +710,7 @@ int StreamingBufferInsertAt(StreamingBuffer *sb, StreamingBufferSegment *seg,
         }
     }
     if (!DATA_FITS_AT_OFFSET(sb, data_len, rel_offset)) {
-        return -1;
+        return -2;
     }
 
     memcpy(sb->buf + rel_offset, data, data_len);