From 18338b4b16d21ae5c0297a6916be7154f6d9cc5f Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan@dovecot.fi>
Date: Tue, 2 Aug 2016 19:39:15 +0200
Subject: [PATCH] lib-sieve: lexer: Adjusted to Dovecot change:
 i_stream_get_data() no longer returns NULL when returned size = 0.

---
 src/lib-sieve/sieve-lexer.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/lib-sieve/sieve-lexer.c b/src/lib-sieve/sieve-lexer.c
index 19946530d..c200cdc47 100644
--- a/src/lib-sieve/sieve-lexer.c
+++ b/src/lib-sieve/sieve-lexer.c
@@ -236,19 +236,19 @@ void sieve_lexer_token_print(const struct sieve_lexer *lexer)
 
 static void sieve_lexer_shift(struct sieve_lexical_scanner *scanner)
 {
-	if ( scanner->buffer != NULL && scanner->buffer[scanner->buffer_pos] == '\n' )
+	if ( scanner->buffer_size > 0 && scanner->buffer[scanner->buffer_pos] == '\n' )
 		scanner->current_line++;
 
-	if ( scanner->buffer != NULL &&
+	if ( scanner->buffer_size > 0 &&
 		scanner->buffer_pos + 1 < scanner->buffer_size )
 		scanner->buffer_pos++;
 	else {
-		if ( scanner->buffer != NULL )
+		if ( scanner->buffer_size > 0 )
 			i_stream_skip(scanner->input, scanner->buffer_size);
 
 		scanner->buffer = i_stream_get_data(scanner->input, &scanner->buffer_size);
 
-		if ( scanner->buffer == NULL && i_stream_read(scanner->input) > 0 )
+		if ( scanner->buffer_size == 0 && i_stream_read(scanner->input) > 0 )
 	  		scanner->buffer = i_stream_get_data
 					(scanner->input, &scanner->buffer_size);
 
@@ -258,7 +258,7 @@ static void sieve_lexer_shift(struct sieve_lexical_scanner *scanner)
 
 static inline int sieve_lexer_curchar(struct sieve_lexical_scanner *scanner)
 {
-	if ( scanner->buffer == NULL )
+	if ( scanner->buffer_size == 0 )
 		return -1;
 
 	return scanner->buffer[scanner->buffer_pos];
-- 
GitLab