[syslog-ng]Urgent: Mangled messages in pipe() destinations in versions >1.5.8

Balazs Scheidler bazsi@balabit.hu
Sat, 28 Dec 2002 10:55:27 +0100


On Sat, Dec 28, 2002 at 12:05:12AM +0100, Andreas Schulze wrote:
> Balazs Scheidler wrote:
> > On Fri, Sep 27, 2002 at 02:47:25PM +0200, Carlos Inacio wrote:
> 
> I think, you changed the internal buffering from a line based buffer
> to byte based buffer between 1.5.8 and 1.5.9.
> In 1.5.7 there isn't that problem.
> Maybe, line based buffering seems a better idea in this context.
> 
> If you need better information, I could send you the complex config
> and a full truss ouput in private.
> 
> Hope, this coveres the problem.
> 
> Because a solution becomes more and more important for us, I hope
> that you can investigate this and maybe we can discuss a solution.

Thanks for the detailed report. I think I have found the problem this time.
Can you check this patch?

Index: pkt_buffer.c
===================================================================
RCS file: /var/cvs/syslog-ng/libol/src/pkt_buffer.c,v
retrieving revision 1.15
diff -u -r1.15 pkt_buffer.c
--- pkt_buffer.c	18 Dec 2002 12:40:28 -0000	1.15
+++ pkt_buffer.c	28 Dec 2002 09:53:00 -0000
@@ -132,7 +132,7 @@
 				if (self->super.writable)
 					(*self->super.writable) = 1;
 			}
-			else if (res != 0) {
+			else {
 				/* this is slow, because of another memory move
 				 * but this is run rarely anyway */
 				struct buffer_node *item;


-- 
Bazsi
PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1