]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
change device list to free by exit
authorBastian Dehn <hhaalo@arcor.de>
Sat, 4 Jan 2025 18:45:11 +0000 (19:45 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sat, 4 Jan 2025 18:45:11 +0000 (19:45 +0100)
src/kds_s2000w_net.c

index dd57a81e976b9447e0daa9e36675d18bccca9c5d..de97c48581af336d88892adcdf32b1b4a929ab63 100644 (file)
@@ -9,6 +9,18 @@
 #include "kds_s2000w_handler.h"
 #include "kds_s2000w_debug.h"
 
+SANE_Device** device_info_list = NULL;
+
+void _free_device_info_list(SANE_Device** device_info_list)
+{
+       free(device_info_list[0]);
+       device_info_list[0] = NULL;
+       free(device_info_list[1]);
+       device_info_list[1] = NULL;
+       free(device_info_list);
+       device_info_list = NULL;
+}
+
 SANE_Status _sane_kds_s2000w_net_init(SANE_Int* version_code, SANE_Auth_Callback authorize)
 {
        debug_printf(ALL, "sane_kds_s2000w_net_init");
@@ -20,6 +32,7 @@ SANE_Status _sane_kds_s2000w_net_init(SANE_Int* version_code, SANE_Auth_Callback
 
 void _sane_kds_s2000w_net_exit(void)
 {
+       _free_device_info_list(device_info_list);
        debug_printf(ALL, "sane_kds_s2000w_net_exit");
 }
 
@@ -31,15 +44,14 @@ SANE_Status _sane_kds_s2000w_net_get_devices(SANE_Device*** device_list,
        if (local_only)
                return SANE_STATUS_NO_MEM;
 
-       SANE_Device** own_device_list = malloc(sizeof(SANE_Device*) * 2);
-       SANE_Device* device_info = malloc(sizeof(SANE_Device));
-       device_info->name = "kds_s2000w_net";
-       device_info->vendor = "Kodak";
-       device_info->model = "Kodak Alaris s2000w series";
-       device_info->type = "sheetfed scanner";
-       own_device_list[0] = device_info;
-       own_device_list[1] = NULL;
-       *device_list = own_device_list;
+       device_info_list = malloc(sizeof(SANE_Device*) * 2);
+       device_info_list[0] = malloc(sizeof(SANE_Device));
+       device_info_list[0]->name = "kds_s2000w_net";
+       device_info_list[0]->vendor = "Kodak";
+       device_info_list[0]->model = "Kodak Alaris s2000w series";
+       device_info_list[0]->type = "sheetfed scanner";
+       device_info_list[1] = NULL;
+       *device_list = device_info_list;
 
        return SANE_STATUS_GOOD;
 }