sane-project-website/old-archive/1998-03/0145.html

87 wiersze
3.3 KiB
HTML

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

<!-- received="Sat Mar 21 06:26:39 1998 PST" -->
<!-- sent="Sat, 21 Mar 1998 15:25:29 +0100 (CET)" -->
<!-- name="=?ISO-8859-1?Q?Mikko_Ty=F6l=E4j=E4rvi?=" -->
<!-- email="mikko@securitydynamics.com" -->
<!-- subject="xscanimage SIGSEGVs (patch included)" -->
<!-- id="" -->
<!-- inreplyto="" -->
<title>sane-devel: xscanimage SIGSEGVs (patch included)</title>
<h1>xscanimage SIGSEGVs (patch included)</h1>
<b>=?ISO-8859-1?Q?Mikko_Ty=F6l=E4j=E4rvi?=</b> (<a href="mailto:mikko@securitydynamics.com"><i>mikko@securitydynamics.com</i></a>)<br>
<i>Sat, 21 Mar 1998 15:25:29 +0100 (CET)</i>
<p>
<ul>
<li> <b>Messages sorted by:</b> <a href="date.html#145">[ date ]</a><a href="index.html#145">[ thread ]</a><a href="subject.html#145">[ subject ]</a><a href="author.html#145">[ author ]</a>
<!-- next="start" -->
<li> <b>Next message:</b> <a href="0146.html">Oliver.Rauch@Wolfsburg.DE: "Re: Need some advice"</a>
<li> <b>Previous message:</b> <a href="0144.html">Kaz Sasayama: "Re: epson via parallel"</a>
<!-- nextthread="start" -->
<!-- reply="end" -->
</ul>
<!-- body="start" -->
Hi!<br>
<p>
A sure way to crash sane on my machine is to start with "Show advanced<br>
options" turned on, turn it off, open the preview window and click<br>
"Aquire preview". This requires the backend to define some options as<br>
"advanced," of course. The crash is deep down in GTK, when called<br>
from gsg_set_sensitivity().<br>
<p>
The following patch (at the end of panel_destroy()) stops this from<br>
happening:<br>
<p>
<p>
--- frontend/gtkglue.c.org Sat Mar 21 13:11:46 1998<br>
+++ frontend/gtkglue.c Sat Mar 21 13:08:42 1998<br>
@@ -829,6 +829,8 @@<br>
elem-&gt;menu = 0;<br>
}<br>
}<br>
+ memset (dialog-&gt;element, 0,<br>
+ dialog-&gt;num_elements * sizeof (dialog-&gt;element[0]));<br>
}<br>
<br>
static void<br>
<p>
<p>
Explanation: panel_rebuild() is called to rebuild the xscanimage<br>
window. It simply calls panel_destroy() and builds the panel from<br>
scratch with panel_build(), which skips entries that should not be<br>
shown. This is OKfor panel_build() when called initially, as<br>
gsg_create_dialog() clears the options array (element).<br>
Panel_destroy() however does not, leaving assorted garbage pointers<br>
for gsg_set_sensitivity() to crash on.<br>
<p>
Another fix would be to add a test for:<br>
<p>
((opt-&gt;cap &amp; SANE_CAP_ADVANCED) &amp;&amp; !dialog-&gt;advanced))<br>
<p>
in gsg_set_sensitivity(), to skip the bogus option entries (as<br>
panel_build() did), but then something else might crash for the same<br>
reason somewhere else.<br>
<p>
BTW: This is sane 0.71 with the snapscan backend, on FreeBSD 2.2.5 / 3.0.<br>
<p>
Regards,<br>
/Mikko<br>
<p>
<p>
Mikko Tyo"la"ja"rvi________________________________mikko@securitydynamics.com<br>
SecurityDynamics<br>
<p>
<p>
<pre>
--
Source code, list archive, and docs: <a href="http://www.mostang.com/sane/">http://www.mostang.com/sane/</a>
To unsubscribe: echo unsubscribe sane-devel | mail <a href="mailto:majordomo@mostang.com">majordomo@mostang.com</a>
</pre>
<!-- body="end" -->
<p>
<ul>
<!-- next="start" -->
<li> <b>Next message:</b> <a href="0146.html">Oliver.Rauch@Wolfsburg.DE: "Re: Need some advice"</a>
<li> <b>Previous message:</b> <a href="0144.html">Kaz Sasayama: "Re: epson via parallel"</a>
<!-- nextthread="start" -->
<!-- reply="end" -->
</ul>