[sane-devel] sane-airscan 0.99.12 release notes
pzz at apevzner.com
Wed Aug 5 12:51:47 BST 2020
I've just created sane-airscan 0.99.12 release.
The following release notes are mostly targeting maintainers of linux
distros that already include sane-airscan or working on such an integration.
The primary goal of this release was to remove libsoup/libglib
dependency. It also includes some stability improvements and bug fixes.
1. libsoup/libglib removal
This release doesn't use libsoub and libglib anymore. libsoup HTTP
client was replaced with homemade one, HTTP parsing is handled by nodejs
http-parser. Sources of the http-parser were directly included into the
sane-airscan source tree, to ensure consistent behavior across different
Build dependencies for packages needs to be updated.
2. Correct handling of HTTP redirections
Some devices (for example, HP Color LaserJet MFP M477fdw) use HTTP
redirect to enforce HTTPS vs HTTP. libsoup (and, by default, libcups)
handles these redirects "as browser", by replacing POST request with GET
requests, which breaks eSCL protocol.
3. Fixed buffer overflow in image clipping.
Under some circumstances (always in WSD mode, sometimes in eSCL mode),
sane-airscan performs image clipping in software (i.e., full-size scan
is requested from device and then clipped down to requested size).
Mistake in line buffer size calculation might cause software crashes due
to buffer overflow.
4. Fixed hangup if LOAD operation was failed due to I/O error
If scanning was interrupted by I/O error when image already created at
device but not downloaded yet, sane-airscan might hang.
5. Fixed SANE_STATUS_NO_DOCS reporting to simple-scan
simple-scan doesn't correctly handle SANE_STATUS_NO_DOCS if returned by
sane_read(), not by sane_start().
6. Enforced 2500-ms pause between subsequent sane_start() retries.
If sane_start() returns SANE_STATUS_DEVICE_BUSY, simple-scan immediately
retries it, without any pause or limit. It may put device under
excessive stress, causing device to hang or reboot
7. Fixed small memory leak in a case of backend load/unload
sane_exit() didn't properly release all the memory, allocated by
sane_init() during loading backend configuration file
8. Fixed crash in XML formatter
sane-airscan pretty-prints XML messages before writing them to the log
file. Some kinds of XMLs could cause XML formatter to crash.
Wishes, Alexander Pevzner (pzz at apevzner.com)
More information about the sane-devel