Sfoglia il codice sorgente

use BAlloc in allocations where zero size is possible

ambrop7 14 anni fa
parent
commit
abc0fb93c5

+ 8 - 7
dhcpclient/BDHCPClientCore.c

@@ -25,6 +25,7 @@
 
 #include <misc/byteorder.h>
 #include <misc/minmax.h>
+#include <misc/balloc.h>
 #include <security/BRandom.h>
 #include <base/BLog.h>
 
@@ -615,12 +616,12 @@ int BDHCPClientCore_Init (BDHCPClientCore *o, PacketPassInterface *send_if, Pack
     o->user = user;
     
     // allocate buffers
-    if (!(o->send_buf = malloc(PacketPassInterface_GetMTU(send_if)))) {
-        BLog(BLOG_ERROR, "malloc send buf failed");
+    if (!(o->send_buf = BAlloc(PacketPassInterface_GetMTU(send_if)))) {
+        BLog(BLOG_ERROR, "BAlloc send buf failed");
         goto fail0;
     }
-    if (!(o->recv_buf = malloc(PacketRecvInterface_GetMTU(recv_if)))) {
-        BLog(BLOG_ERROR, "malloc recv buf failed");
+    if (!(o->recv_buf = BAlloc(PacketRecvInterface_GetMTU(recv_if)))) {
+        BLog(BLOG_ERROR, "BAlloc recv buf failed");
         goto fail1;
     }
     
@@ -651,7 +652,7 @@ int BDHCPClientCore_Init (BDHCPClientCore *o, PacketPassInterface *send_if, Pack
     return 1;
     
 fail1:
-    free(o->send_buf);
+    BFree(o->send_buf);
 fail0:
     return 0;
 }
@@ -668,8 +669,8 @@ void BDHCPClientCore_Free (BDHCPClientCore *o)
     BReactor_RemoveTimer(o->reactor, &o->reset_timer);
     
     // free buffers
-    free(o->recv_buf);
-    free(o->send_buf);
+    BFree(o->recv_buf);
+    BFree(o->send_buf);
 }
 
 void BDHCPClientCore_GetClientIP (BDHCPClientCore *o, uint32_t *out_ip)

+ 8 - 9
examples/bavl_test.c

@@ -24,6 +24,7 @@
 
 #include <misc/offset.h>
 #include <misc/debug.h>
+#include <misc/balloc.h>
 #include <structure/BAVL.h>
 #include <security/BRandom.h>
 
@@ -80,16 +81,13 @@ int main (int argc, char **argv)
         return 1;
     }
     
-    struct mynode *nodes = malloc(num_nodes * sizeof(*nodes));
-    if (!nodes) {
-        fprintf(stderr, "malloc failed\n");
-        return 1;
-    }
+    struct mynode *nodes = BAllocArray(num_nodes, sizeof(*nodes));
+    ASSERT_FORCE(nodes)
     
-    int *values_ins = malloc(num_nodes * sizeof(int));
+    int *values_ins = BAllocArray(num_nodes, sizeof(int));
     ASSERT_FORCE(values_ins)
     
-    int *values = malloc(num_random_delete * sizeof(int));
+    int *values = BAllocArray(num_random_delete, sizeof(int));
     ASSERT_FORCE(values)
     
     BAVL avl;
@@ -132,8 +130,9 @@ int main (int argc, char **argv)
     
     printf("Removed %d entries\n", removed);
     
-    free(nodes);
-    free(values);
+    BFree(nodes);
+    BFree(values_ins);
+    BFree(values);
     
     return 0;
 }

+ 11 - 6
examples/bencryption_bench.c

@@ -26,6 +26,7 @@
 #include <stdint.h>
 #include <limits.h>
 
+#include <misc/balloc.h>
 #include <security/BRandom.h>
 #include <security/BEncryption.h>
 #include <base/DebugObject.h>
@@ -92,19 +93,23 @@ int main (int argc, char **argv)
     uint8_t iv[block_size];
     BRandom_randomize(iv, sizeof(iv));
     
+    if (num_blocks > INT_MAX / block_size) {
+        printf("too much");
+        goto fail0;
+    }
     int unit_size = num_blocks * block_size;
     
     printf("unit size %d\n", unit_size);
     
-    uint8_t *buf1 = malloc(unit_size);
+    uint8_t *buf1 = BAlloc(unit_size);
     if (!buf1) {
-        printf("malloc failed");
+        printf("BAlloc failed");
         goto fail0;
     }
     
-    uint8_t *buf2 = malloc(unit_size);
+    uint8_t *buf2 = BAlloc(unit_size);
     if (!buf2) {
-        printf("malloc failed");
+        printf("BAlloc failed");
         goto fail1;
     }
     
@@ -124,9 +129,9 @@ int main (int argc, char **argv)
     }
     
     BEncryption_Free(&enc);
-    free(buf2);
+    BFree(buf2);
 fail1:
-    free(buf1);
+    BFree(buf1);
 fail0:
     DebugObjectGlobal_Finish();
     

+ 6 - 8
examples/bheap_test.c

@@ -21,6 +21,7 @@
  */
 
 #include <misc/offset.h>
+#include <misc/balloc.h>
 #include <structure/BHeap.h>
 #include <security/BRandom.h>
 
@@ -77,13 +78,10 @@ int main (int argc, char **argv)
         return 1;
     }
     
-    struct mynode *nodes = malloc(num_nodes * sizeof(*nodes));
-    if (!nodes) {
-        fprintf(stderr, "malloc failed\n");
-        return 1;
-    }
+    struct mynode *nodes = BAllocArray(num_nodes, sizeof(*nodes));
+    ASSERT_FORCE(nodes)
     
-    int *values = malloc(num_random_delete * sizeof(int));
+    int *values = BAllocArray(num_random_delete, sizeof(int));
     ASSERT_FORCE(values)
     
     BHeap heap;
@@ -123,8 +121,8 @@ int main (int argc, char **argv)
     
     //print_heap(&heap);
     
-    free(nodes);
-    free(values);
+    BFree(values);
+    BFree(nodes);
     
     return 0;
 }

+ 3 - 2
flow/SinglePacketBuffer.c

@@ -23,6 +23,7 @@
 #include <stdlib.h>
 
 #include <misc/debug.h>
+#include <misc/balloc.h>
 
 #include <flow/SinglePacketBuffer.h>
 
@@ -55,7 +56,7 @@ int SinglePacketBuffer_Init (SinglePacketBuffer *o, PacketRecvInterface *input,
     PacketPassInterface_Sender_Init(o->output, (PacketPassInterface_handler_done)output_handler_done, o);
     
     // init buffer
-    if (!(o->buf = malloc(PacketRecvInterface_GetMTU(o->input)))) {
+    if (!(o->buf = BAlloc(PacketRecvInterface_GetMTU(o->input)))) {
         goto fail1;
     }
     
@@ -75,5 +76,5 @@ void SinglePacketBuffer_Free (SinglePacketBuffer *o)
     DebugObject_Free(&o->d_obj);
     
     // free buffer
-    free(o->buf);
+    BFree(o->buf);
 }