Dear All,

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 linux distros.

Build dependencies for packages needs to be updated.

For RPM:
  + gnutls-devel
  - glib2-devel
  - libsoup-devel
  - avahi-glib-devel

For DEB:
  + gnutls-dev
  - libglib2.0-dev
  - libsoup2.4-dev
  - libavahi-glib-dev

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 ([email protected])

Reply via email to