diff src/lib/istream-limit.c @ 14964:6d2be8d8891c

i_stream_stat() API changed. This fixes also one missing error check.
author Timo Sirainen <tss@iki.fi>
date Tue, 28 Aug 2012 22:40:57 +0300
parents 34e4c04ae679
children 90710c6c3beb
line wrap: on
line diff
--- a/src/lib/istream-limit.c	Tue Aug 28 22:20:17 2012 +0300
+++ b/src/lib/istream-limit.c	Tue Aug 28 22:40:57 2012 +0300
@@ -71,20 +71,19 @@
 	return ret;
 }
 
-static const struct stat *
+static int
 i_stream_limit_stat(struct istream_private *stream, bool exact)
 {
 	struct limit_istream *lstream = (struct limit_istream *) stream;
 	const struct stat *st;
 
-	st = i_stream_stat(stream->parent, exact);
-	if (st == NULL)
-		return NULL;
+	if (i_stream_stat(stream->parent, exact, &st) < 0)
+		return -1;
 
 	stream->statbuf = *st;
 	if (lstream->v_size != (uoff_t)-1)
 		stream->statbuf.st_size = lstream->v_size;
-	return &stream->statbuf;
+	return 0;
 }
 
 static int i_stream_limit_get_size(struct istream_private *stream,
@@ -98,8 +97,7 @@
 		return 1;
 	}
 
-	st = i_stream_stat(&stream->istream, exact);
-	if (st == NULL)
+	if (i_stream_stat(&stream->istream, exact, &st) < 0)
 		return -1;
 	if (st->st_size == -1)
 		return 0;