From: Timo Sirainen Date: Tue, 30 Jun 2015 09:17:35 +0000 (+0300) Subject: lib: istream_file.stat() fails, set stream_errno and error string. X-Git-Tag: 2.2.19.rc1~299 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e17d72cec1c75554483d692edd687b411526f312;p=thirdparty%2Fdovecot%2Fcore.git lib: istream_file.stat() fails, set stream_errno and error string. For now we'll also keep logging the error since everybody isn't using i_stream_get_error(). --- diff --git a/src/lib/istream-file.c b/src/lib/istream-file.c index 8d1c0b9a34..4df72f04a6 100644 --- a/src/lib/istream-file.c +++ b/src/lib/istream-file.c @@ -161,12 +161,18 @@ i_stream_file_stat(struct istream_private *stream, bool exact ATTR_UNUSED) /* return defaults */ } else if (stream->fd != -1) { if (fstat(stream->fd, &stream->statbuf) < 0) { - i_error("file_istream.fstat(%s) failed: %m", name); + stream->istream.stream_errno = errno; + io_stream_set_error(&stream->iostream, + "file_istream.fstat(%s) failed: %m", name); + i_error("%s", i_stream_get_error(&stream->istream)); return -1; } } else { if (stat(name, &stream->statbuf) < 0) { - i_error("file_istream.stat(%s) failed: %m", name); + stream->istream.stream_errno = errno; + io_stream_set_error(&stream->iostream, + "file_istream.stat(%s) failed: %m", name); + i_error("%s", i_stream_get_error(&stream->istream)); return -1; } }