]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
fix allocation issue read test
authorBastian Dehn <hhaalo@arcor.de>
Sat, 11 Oct 2025 11:44:23 +0000 (13:44 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Sat, 11 Oct 2025 11:44:23 +0000 (13:44 +0200)
tests/kds_s2000w_net_read_tests.c

index 871169a8d8703aa38eaef3b47b1f930d2b5c2c81..7a171f728c9e24d5640aa38a609776a941b4a69e 100644 (file)
@@ -16,13 +16,36 @@ void sane_kds_s2000w_net_read_test()
        h->image->size = 65536;
        h->image->data = malloc(sizeof(char) * 65536);
        char* imagedata = (char*) h->image->data;
+       if (imagedata == NULL) {
+               kds_s2000w_handler_free(h);
+               h = NULL;
+               return;
+       }
+
        for (uint32_t i = 0; i < 65536; i++) {
                imagedata[i] = (char) 0xff;
        }
 
        SANE_Int maxlen = 65536;
        char* dataptr = malloc(sizeof(char) * maxlen);
+       if (dataptr == NULL) {
+               kds_s2000w_handler_free(h);
+               h = NULL;
+               free(imagedata);
+               imagedata = NULL;
+               return;
+       }
+
        SANE_Int* length = malloc(sizeof(SANE_Int));
+       if (length == NULL) {
+               kds_s2000w_handler_free(h);
+               h = NULL;
+               free(dataptr);
+               dataptr = NULL;
+               free(imagedata);
+               imagedata = NULL;
+               return;
+       }
 
        sane_kds_s2000w_net_read(h, (void*) dataptr, maxlen, length);
 
@@ -84,6 +107,11 @@ void sane_kds_s2000w_net_read_bytes_per_line_bigger_test()
        h->image->size = 95003;
        h->image->data = malloc(sizeof(char) * 95003);
        char* image = (char*) h->image->data;
+       if (image == NULL) {
+               kds_s2000w_handler_free(h);
+               h = NULL;
+               return;
+       }
        for (uint32_t i = 0; i < 3; i++) {
                image[i] = 0x0a;
        }
@@ -91,7 +119,21 @@ void sane_kds_s2000w_net_read_bytes_per_line_bigger_test()
 
        SANE_Int maxlen = 65536;
        char* dataptr = malloc(sizeof(char) * maxlen);
+       if (dataptr == NULL) {
+               kds_s2000w_handler_free(h);
+               h = NULL;
+               free(image);
+               image = NULL;
+               return;
+       }
        SANE_Int* length = malloc(sizeof(SANE_Int));
+       if (length == NULL) {
+               kds_s2000w_handler_free(h);
+               h = NULL;
+               free(dataptr);
+               dataptr = NULL;
+               return;
+       }
 
        sane_kds_s2000w_net_read(h, (void*) dataptr, maxlen, length);
        sane_kds_s2000w_net_read(h, (void*) dataptr, maxlen, length);