]> granicus.if.org Git - recode/commit
Overhaul error handling in transform steps (fixes Debian bug #215285)
authorReuben Thomas <rrt@sc3d.org>
Sat, 20 Jan 2018 00:01:53 +0000 (00:01 +0000)
committerReuben Thomas <rrt@sc3d.org>
Tue, 23 Jan 2018 07:02:42 +0000 (07:02 +0000)
commitf364f1e0831bac1a812ac22ae473da2c9263c9f5
tree90d4c25d1fb0ff503305f26e8c065ba3d9865a30
parent5c4b92f6afb8190f470aed65754e62373a197639
Overhaul error handling in transform steps (fixes Debian bug #215285)

Three main principles were applied:

1. Check all return codes (this fixes Debian bug #215285, data is lost when
no space left on device).
2. Ensure that resources are not leaked (memory and file descriptors).
3. Consistently use the recode error signalling mechanism: rather than
arbitrarily signalling failure on an I/O error, set error level
RECODE_SYSTEM_ERROR, and signal failure according to fail_level.

It proved to be useful to merge perform_{memory,pass}_sequence.
src/mixed.c
src/task.c