[Dovecot] Missing i_stream_unref in imap_msgpart_crlf_seek()?
Hi,
imap_msgpart_crlf_seek() returns an error stream in case of problems in message_skip_virtual(). The original input stream is not being unreferenced, preventing destroy callbacks from being executed.
Shouldn't we have an i_stream_unref(&input) here:
src/lib-imap-storage/imap-msgpart.c: 398 if (message_skip_virtual(input, virtual_skip, &cr_skipped) < 0) { 399 errinput = i_stream_create_error(errno); 400 i_stream_set_name(errinput, i_stream_get_name(input)); 401 return errinput; 402 }
?
Best regards, Tomasz Potęga
[Wirtualna Polska] http://www.wp.pl
Znajdziesz nas tutaj:
[Wp na Facebooku] https://www.facebook.com/WirtualnaPolska [Wp na Twitterze] https://twitter.com/wirtualnapolska [Wp na SlideShare] http://www.slideshare.net/wirtualnapolska [Wp w Google+] https://plus.google.com/+wppl [Wp na YouTube] https://www.youtube.com/user/wptvwppl
"WIRTUALNA POLSKA" Spółka Akcyjna z siedzibą w Gdańsku przy ul. Traugutta 115 C, wpisana do Krajowego Rejestru Sądowego - Rejestru Przedsiębiorców prowadzonego przez Sąd Rejonowy Gdańsk - Północ w Gdańsku pod numerem KRS 0000068548, o kapitale zakładowym 67.980.024,00 złotych opłaconym w całości oraz Numerze Identyfikacji Podatkowej 957-07-51-216.
On 6.11.2013, at 11.31, Tomasz Potega tpotega@wp-sa.pl wrote:
imap_msgpart_crlf_seek() returns an error stream in case of problems in message_skip_virtual(). The original input stream is not being unreferenced, preventing destroy callbacks from being executed.
Shouldn't we have an i_stream_unref(&input) here:
src/lib-imap-storage/imap-msgpart.c: 398 if (message_skip_virtual(input, virtual_skip, &cr_skipped) < 0) { 399 errinput = i_stream_create_error(errno); 400 i_stream_set_name(errinput, i_stream_get_name(input)); 401 return errinput; 402 }
?
participants (2)
-
Timo Sirainen
-
Tomasz Potega