]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
ostream: Added default failure handling if write_at() isn't implemented.
authorTimo Sirainen <tss@iki.fi>
Fri, 5 Feb 2010 23:06:47 +0000 (01:06 +0200)
committerTimo Sirainen <tss@iki.fi>
Fri, 5 Feb 2010 23:06:47 +0000 (01:06 +0200)
--HG--
branch : HEAD

src/lib/ostream.c

index d0922dea45dbf8ff3a576fe1cf106805313e3b04..8b286f8b47cd6ed6932e7671351ab84207d49481 100644 (file)
@@ -212,6 +212,11 @@ int o_stream_pwrite(struct ostream *stream, const void *data, size_t size,
        if (unlikely(stream->closed))
                return -1;
 
+       if (stream->real_stream->write_at == NULL) {
+               /* stream doesn't support seeking */
+               stream->stream_errno = EPIPE;
+               return -1;
+       }
        ret = stream->real_stream->write_at(stream->real_stream,
                                            data, size, offset);
        if (unlikely(ret < 0)) {