gt68xx: Initial check-in of proposed patch for crash.

Ulf and I will review and test this patch on this branch.
It does seem to fix the issue, but I want to check it out a little more
before we commit it to master.
merge-requests/244/head
Ralph Little 2020-07-26 11:02:40 -07:00
rodzic 1b9e701605
commit 462419cc68
2 zmienionych plików z 15 dodań i 1 usunięć

Wyświetl plik

@ -2130,6 +2130,7 @@ sane_read (SANE_Handle handle, SANE_Byte * buf, SANE_Int max_len,
&& s->byte_count >= s->reader->params.pixel_xs)
{
DBG (4, "sane_read: nothing more to scan: EOF\n");
gt68xx_scanner_stop_scan(s);
return SANE_STATUS_EOF;
}
@ -2328,7 +2329,7 @@ sane_cancel (SANE_Handle handle)
/* some scanners don't like this command when cancelling a scan */
sanei_usb_set_timeout (SHORT_TIMEOUT);
gt68xx_device_fix_descriptor (s->dev);
gt68xx_scanner_stop_scan (s);
//gt68xx_scanner_stop_scan (s);
sanei_usb_set_timeout (LONG_TIMEOUT);
if (s->dev->model->flags & GT68XX_FLAG_SHEET_FED)

Wyświetl plik

@ -1006,6 +1006,7 @@ gt68xx_line_reader_new (GT68xx_Device * dev,
DBG (3, "gt68xx_line_reader_new: cannot allocate line buffers: %s\n",
sane_strstatus (status));
free (reader);
reader = NULL;
return status;
}
@ -1105,6 +1106,7 @@ gt68xx_line_reader_new (GT68xx_Device * dev,
reader->params.depth);
gt68xx_line_reader_free_delays (reader);
free (reader);
reader = NULL;
return SANE_STATUS_UNSUPPORTED;
}
@ -1119,6 +1121,7 @@ gt68xx_line_reader_new (GT68xx_Device * dev,
DBG (3, "gt68xx_line_reader_new: cannot allocate pixel buffer\n");
gt68xx_line_reader_free_delays (reader);
free (reader);
reader = NULL;
return SANE_STATUS_NO_MEM;
}
@ -1135,6 +1138,7 @@ gt68xx_line_reader_new (GT68xx_Device * dev,
free (reader->pixel_buffer);
gt68xx_line_reader_free_delays (reader);
free (reader);
reader = NULL;
return status;
}
@ -1150,6 +1154,14 @@ gt68xx_line_reader_free (GT68xx_Line_Reader * reader)
DBG (6, "gt68xx_line_reader_free: enter\n");
if (reader == NULL)
{
DBG (3, "gt68xx_line_reader_free: already freed\n");
DBG (6, "gt68xx_line_reader_free: leave\n");
return SANE_STATUS_INVAL;
}
gt68xx_line_reader_free_delays (reader);
if (reader->pixel_buffer)
@ -1167,6 +1179,7 @@ gt68xx_line_reader_free (GT68xx_Line_Reader * reader)
}
free (reader);
reader = NULL;
DBG (6, "gt68xx_line_reader_free: leave\n");
return status;