From 17693eec60e98369eabade74a7723df2d6909dc6 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Wed, 31 Jul 2024 15:33:27 +0200 Subject: [PATCH] change read contitions first read and return --- src/kds_s2000w_net.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/kds_s2000w_net.c b/src/kds_s2000w_net.c index 480c637..29b5d9d 100644 --- a/src/kds_s2000w_net.c +++ b/src/kds_s2000w_net.c @@ -224,23 +224,23 @@ SANE_Status _sane_kds_s2000w_net_read(SANE_Handle handle, SANE_Byte* data, if (h->pnm_image->data != NULL && h->read_info->read_size <= 0) h->read_info->read_size += _sane_kds_s2000w_net_find_first_data_byte(h->pnm_image); - // last frame - if (h->read_info->read_size >= h->pnm_image->size) { - *length = 0; - h->scanner_image->size = 0; - free(h->scanner_image->data); - h->scanner_image->data = NULL; - h->pnm_image->size = 0; - free(h->pnm_image->data); - h->pnm_image->data = NULL; - - return SANE_STATUS_EOF; + if (h->read_info->read_size < h->pnm_image->size) { + memcpy(data, h->pnm_image->data + h->read_info->read_size, *length); + h->read_info->read_size += *length; + + return SANE_STATUS_GOOD; } - memcpy(data, h->pnm_image->data + h->read_info->read_size, *length); - h->read_info->read_size += *length; + free(h->scanner_image->data); + h->scanner_image->data = NULL; + h->scanner_image->size = 0; - return SANE_STATUS_GOOD; + free(h->pnm_image->data); + h->pnm_image->data = NULL; + h->pnm_image->size = 0; + + *length = 0; + return SANE_STATUS_EOF; } SANE_Status _sane_kds_s2000w_net_set_io_mode(SANE_Handle handle, -- 2.39.5