Hi,

cfengine-2.2.8 segfaults on rules like

----
control:
        actionsequence = ( editfiles )

editfiles:
        { /tmp/foo
                DeleteLinesMatching "foo"
                LocateLineMatching "foo"
        }
----

when '/tmp/foo' contains 'foo' string.  Analyzing this with 'valgrind'
gives

==4784== Invalid read of size 8
==4784==    at 0x423348: LocateItemMatchingRegExp (item-ext.c:394)
==4784==    by 0x4357D9: DoEditFile (edittools.c:577)
==4784==    by 0x436ACE: WrapDoEditFile (edittools.c:118)
==4784==    by 0x40B393: EditFiles (do.c:2382)
==4784==    by 0x405884: DoTree (cfagent.c:1334)
==4784==    by 0x407ECF: main (cfagent.c:241)
==4784==  Address 0x7070C08 is 8 bytes inside a block of size 72 free'd
==4784==    at 0x4C1F41E: free (vg_replace_malloc.c:233)
==4784==    by 0x423BAF: DeleteItemGeneral (item-ext.c:708)
==4784==    by 0x434B9B: DoEditFile (edittools.c:343)
==4784==    by 0x436ACE: WrapDoEditFile (edittools.c:118)
==4784==    by 0x40B393: EditFiles (do.c:2382)
==4784==    by 0x405884: DoTree (cfagent.c:1334)
==4784==    by 0x407ECF: main (cfagent.c:241)



--> LocateItemMatchingRegExp() is called with a CURRENTLINEPTR which
points to memory free'd by DeleteItemGeneral




Enrioc
_______________________________________________
Bug-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/bug-cfengine

Reply via email to