diff options
author | Uli Schlachter <psychon@znc.in> | 2021-07-23 17:22:16 +0200 |
---|---|---|
committer | Uli Schlachter <psychon@znc.in> | 2021-07-23 17:22:16 +0200 |
commit | 2fbd53a6b33a90a08ef6eda9e5f88e8fb3b97c1e (patch) | |
tree | b99bcdf4741e6473d77ddc0e2ea1e71e76381086 /src/cairo-pdf-surface-private.h | |
parent | b408352d450bb8c1b1cc17b14e0d605dc40daaed (diff) | |
download | cairo-2fbd53a6b33a90a08ef6eda9e5f88e8fb3b97c1e.tar.gz |
pdf: Properly pass on stdio write errors
cairo-pdf was silently ignoring write errors in
_cairo_pdf_surface_finish(). Any write errors that happened here ended
up setting a "status" variable, but the value in this variable was then
unused.
This commit fixes this bug by passing this error on to the caller.
Additionally, this also adds a test case for this behaviour based on
writing to /dev/full. This file is non-standard and thus the test first
checks that this file exists and is writable before trying to write to
it.
This bug was found based on a report from Knut Petersen [0].
[0]: https://lists.cairographics.org/archives/cairo/2021-July/029281.html
Signed-off-by: Uli Schlachter <psychon@znc.in>
Diffstat (limited to 'src/cairo-pdf-surface-private.h')
-rw-r--r-- | src/cairo-pdf-surface-private.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/cairo-pdf-surface-private.h b/src/cairo-pdf-surface-private.h index 3793332ce..49776b90f 100644 --- a/src/cairo-pdf-surface-private.h +++ b/src/cairo-pdf-surface-private.h @@ -355,7 +355,7 @@ _cairo_utf8_to_pdf_string (const char *utf8, char **str_out); cairo_private cairo_int_status_t _cairo_pdf_interchange_init (cairo_pdf_surface_t *surface); -cairo_private cairo_int_status_t +cairo_private void _cairo_pdf_interchange_fini (cairo_pdf_surface_t *surface); cairo_private cairo_int_status_t |