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,