kopia lustrzana https://gitlab.com/sane-project/backends
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
rodzic
1b9e701605
commit
462419cc68
|
@ -2130,6 +2130,7 @@ sane_read (SANE_Handle handle, SANE_Byte * buf, SANE_Int max_len,
|
||||||
&& s->byte_count >= s->reader->params.pixel_xs)
|
&& s->byte_count >= s->reader->params.pixel_xs)
|
||||||
{
|
{
|
||||||
DBG (4, "sane_read: nothing more to scan: EOF\n");
|
DBG (4, "sane_read: nothing more to scan: EOF\n");
|
||||||
|
gt68xx_scanner_stop_scan(s);
|
||||||
return SANE_STATUS_EOF;
|
return SANE_STATUS_EOF;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2328,7 +2329,7 @@ sane_cancel (SANE_Handle handle)
|
||||||
/* some scanners don't like this command when cancelling a scan */
|
/* some scanners don't like this command when cancelling a scan */
|
||||||
sanei_usb_set_timeout (SHORT_TIMEOUT);
|
sanei_usb_set_timeout (SHORT_TIMEOUT);
|
||||||
gt68xx_device_fix_descriptor (s->dev);
|
gt68xx_device_fix_descriptor (s->dev);
|
||||||
gt68xx_scanner_stop_scan (s);
|
//gt68xx_scanner_stop_scan (s);
|
||||||
sanei_usb_set_timeout (LONG_TIMEOUT);
|
sanei_usb_set_timeout (LONG_TIMEOUT);
|
||||||
|
|
||||||
if (s->dev->model->flags & GT68XX_FLAG_SHEET_FED)
|
if (s->dev->model->flags & GT68XX_FLAG_SHEET_FED)
|
||||||
|
|
|
@ -1006,6 +1006,7 @@ gt68xx_line_reader_new (GT68xx_Device * dev,
|
||||||
DBG (3, "gt68xx_line_reader_new: cannot allocate line buffers: %s\n",
|
DBG (3, "gt68xx_line_reader_new: cannot allocate line buffers: %s\n",
|
||||||
sane_strstatus (status));
|
sane_strstatus (status));
|
||||||
free (reader);
|
free (reader);
|
||||||
|
reader = NULL;
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1105,6 +1106,7 @@ gt68xx_line_reader_new (GT68xx_Device * dev,
|
||||||
reader->params.depth);
|
reader->params.depth);
|
||||||
gt68xx_line_reader_free_delays (reader);
|
gt68xx_line_reader_free_delays (reader);
|
||||||
free (reader);
|
free (reader);
|
||||||
|
reader = NULL;
|
||||||
return SANE_STATUS_UNSUPPORTED;
|
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");
|
DBG (3, "gt68xx_line_reader_new: cannot allocate pixel buffer\n");
|
||||||
gt68xx_line_reader_free_delays (reader);
|
gt68xx_line_reader_free_delays (reader);
|
||||||
free (reader);
|
free (reader);
|
||||||
|
reader = NULL;
|
||||||
return SANE_STATUS_NO_MEM;
|
return SANE_STATUS_NO_MEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1135,6 +1138,7 @@ gt68xx_line_reader_new (GT68xx_Device * dev,
|
||||||
free (reader->pixel_buffer);
|
free (reader->pixel_buffer);
|
||||||
gt68xx_line_reader_free_delays (reader);
|
gt68xx_line_reader_free_delays (reader);
|
||||||
free (reader);
|
free (reader);
|
||||||
|
reader = NULL;
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1150,6 +1154,14 @@ gt68xx_line_reader_free (GT68xx_Line_Reader * reader)
|
||||||
|
|
||||||
DBG (6, "gt68xx_line_reader_free: enter\n");
|
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);
|
gt68xx_line_reader_free_delays (reader);
|
||||||
|
|
||||||
if (reader->pixel_buffer)
|
if (reader->pixel_buffer)
|
||||||
|
@ -1167,6 +1179,7 @@ gt68xx_line_reader_free (GT68xx_Line_Reader * reader)
|
||||||
}
|
}
|
||||||
|
|
||||||
free (reader);
|
free (reader);
|
||||||
|
reader = NULL;
|
||||||
|
|
||||||
DBG (6, "gt68xx_line_reader_free: leave\n");
|
DBG (6, "gt68xx_line_reader_free: leave\n");
|
||||||
return status;
|
return status;
|
||||||
|
|
Ładowanie…
Reference in New Issue