Forum: CFEngine Help
Subject: Segfault in 3.1.5 on 32 bit debian lenny
Author: andrela
Link to topic: https://cfengine.com/forum/read.php?3,23376,23376#msg-23376

Hi list,

I have a problem i have been unable to locate the source of. I have a piece of 
policy that crashes cf-promises/cf-agent on 32 bit debian lenny but not on my 
other platforms (32 and 64 bit debian squeeze and 64 bit debian lenny).

I dont know if i have made a compilation error or if there is a bug in the 
cfengine code.(i have built the packages from the same sourcepackage of the 
debian modified version of 3.1.5)

If i change the content of the file i read in i dont get this error, i can only 
reproduce this with this exact code. If i change the email to r...@example.com 
i dont get this error. 

If you think this can be a issue in cfengine rathen than a build issue on my 
part i can register a bug and upload full backtrace.


Best Regards 
Andreas Larsson
Axis Coimmunications AB 


When i run my testpolicy i get this error:

host:~# cf-agent -K -f /tmp/testbug3.cf 
*** glibc detected *** /var/lib/cfengine3/bin/cf-promises: free(): invalid next 
size (fast): 0x081ae2c8 ***
======= Backtrace: =========
/lib/libc.so.6[0xb7378935]
/lib/libc.so.6(cfree+0x9c)[0xb737a7dc]
/var/lib/cfengine3/bin/cf-promises[0x80adfd2]
/var/lib/cfengine3/bin/cf-promises[0x8087387]
/var/lib/cfengine3/bin/cf-promises[0x808478f]
/var/lib/cfengine3/bin/cf-promises[0x80955b6]
/var/lib/cfengine3/bin/cf-promises[0x808bcc0]
/var/lib/cfengine3/bin/cf-promises[0x808c483]
/var/lib/cfengine3/bin/cf-promises[0x804ce06]
/var/lib/cfengine3/bin/cf-promises[0x804f23c]
/var/lib/cfengine3/bin/cf-promises[0x804f884]
/var/lib/cfengine3/bin/cf-promises[0x804bace]
/lib/libc.so.6(__libc_start_main+0xe5)[0xb7324455]
/var/lib/cfengine3/bin/cf-promises[0x804b691]
======= Memory map: ========
08048000-080d7000 r-xp 00000000 fd:06 342018     /usr/sbin/cf-promises
080d7000-080de000 rw-p 0008e000 fd:06 342018     /usr/sbin/cf-promises
080de000-08208000 rw-p 080de000 00:00 0          
b7100000-b7121000 rw-p b7100000 00:00 0 
b7121000-b7200000 ---p b7121000 00:00 0 
b72af000-b72b6000 r-xp 00000000 fd:03 51293      /lib/libnss_compat-2.7.so
b72b6000-b72b8000 rw-p 00006000 fd:03 51293      /lib/libnss_compat-2.7.so
b72b8000-b72c7000 r-xp 00000000 fd:03 51292      /lib/libresolv-2.7.so
b72c7000-b72c9000 rw-p 0000e000 fd:03 51292      /lib/libresolv-2.7.so
b72c9000-b72cb000 rw-p b72c9000 00:00 0 
b72cb000-b72cf000 r-xp 00000000 fd:03 51306      /lib/libnss_dns-2.7.so
b72cf000-b72d1000 rw-p 00003000 fd:03 51306      /lib/libnss_dns-2.7.so
b72d1000-b72d3000 rw-p b72d1000 00:00 0 
b72d3000-b72e7000 r-xp 00000000 fd:06 499714     /usr/lib/libz.so.1.2.3.3
b72e7000-b72e8000 rw-p 00013000 fd:06 499714     /usr/lib/libz.so.1.2.3.3
b72e8000-b72ea000 r-xp 00000000 fd:03 51298      /lib/libdl-2.7.so
b72ea000-b72ec000 rw-p 00001000 fd:03 51298      /lib/libdl-2.7.so
b72ec000-b72f5000 r-xp 00000000 fd:03 51288      /lib/libnss_files-2.7.so
b72f5000-b72f7000 rw-p 00008000 fd:03 51288      /lib/libnss_files-2.7.so
b72f7000-b730a000 r-xp 00000000 fd:03 51287      /lib/libnsl-2.7.so
b730a000-b730c000 rw-p 00012000 fd:03 51287      /lib/libnsl-2.7.so
b730c000-b730e000 rw-p b730c000 00:00 0 
b730e000-b7446000 r-xp 00000000 fd:03 51296      /lib/libc-2.7.so
b7446000-b7447000 r--p 00138000 fd:03 51296      /lib/libc-2.7.so
b7447000-b7449000 rw-p 00139000 fd:03 51296      /lib/libc-2.7.so
b7449000-b744d000 rw-p b7449000 00:00 0 
b744d000-b7587000 r-xp 00000000 fd:06 502985     
/usr/lib/i686/cmov/libcrypto.so.0.9.8
b7587000-b759d000 rw-p 0013a000 fd:06 502985     
/usr/lib/i686/cmov/libcrypto.so.0.9.8
b759d000-b75a0000 rw-p b759d000 00:00 0 
b75a0000-b76d0000 r-xp 00000000 fd:06 499715     /usr/lib/libdb-4.6.so
b76d0000-b76d3000 rw-p 00130000 fd:06 499715     /usr/lib/libdb-4.6.so
b76d3000-b76f7000 r-xp 00000000 fd:03 51289      /lib/libm-2.7.so
b76f7000-b76f9000 rw-p 00023000 fd:03 51289      /lib/libm-2.7.so
b76f9000-b7721000 r-xp 00000000 fd:06 499912     /usr/lib/libpcre.so.3.12.1
b7721000-b7722000 rw-p 00027000 fd:06 499912     /usr/lib/libpcre.so.3.12.1
b7722000-b7729000 r-xp 00000000 fd:03 51299      /lib/librt-2.7.so
b7729000-b772b000 rw-p 00006000 fd:03 51299      /lib/librt-2.7.so
b772b000-b773f000 r-xp 00000000 fd:03 51305      /lib/libpthread-2.7.so
b773f000-b7741000 rw-p 00013000 fd:03 51305      /lib/libpthread-2.7.so
b7741000-b7743000 rw-p b7741000 00:00 0 
b7743000-b774b000 r-xp 00000000 fd:03 51304      /lib/libnss_nis-2.7.so
b774b000-b774d000 rw-p 00007000 fd:03 51304      /lib/libnss_nis-2.7.so
b774d000-b774e000 rw-p b774d000 00:00 0 
b774e000-b7752000 r-xp 00000000 fd:03 49172      /lib/libattr.so.1.1.0
b7752000-b7753000 rw-p 00003000 fd:03 49172      /lib/libattr.so.1.1.0
b7753000-b7759000 r-xp 00000000 fd:03 49323      /lib/libacl.so.1.1.0
b7759000-b775a000 rw-p 00005000 fd:03 49323      /lib/libacl.so.1.1.0
b7760000-b776c000 r-xp 00000000 fd:03 49189      /lib/libgcc_s.so.1
b776c000-b776d000 rw-p 0000b000 fd:03 49189      /lib/libgcc_s.so.1
b776d000-b7772000 rw-p b776d000 00:00 0 
b7772000-b7773000 r-xp b7772000 00:00 0          
b7773000-b778d000 r-xp 00000000 fd:03 51295      /lib/ld-2.7.so
b778d000-b778f000 rw-p 0001a000 fd:03 51295      /lib/ld-2.7.so
bffe5000-c0000000 rw-p bffe5000 00:00 0          
*** glibc detected *** cf-agent: corrupted double-linked list: 0x081bf1b0 ***
======= Backtrace: =========
/lib/libc.so.6[0xb7386935]
/lib/libc.so.6[0xb7386bd4]
/lib/libc.so.6[0xb7388a95]
/lib/libc.so.6(__libc_malloc+0x96)[0xb738a676]
cf-agent[0x8095c44]
cf-agent[0x806db05]
cf-agent[0x806729b]
cf-agent[0x80785a3]
cf-agent[0x804dc26]
cf-agent[0x804dc4a]
cf-agent[0x804c108]
cf-agent[0x809cadc]
cf-agent[0x809d303]
cf-agent[0x804c3a4]
cf-agent[0x804c618]
cf-agent[0x804d515]
cf-agent[0x804db52]
/lib/libc.so.6(__libc_start_main+0xe5)[0xb7332455]
cf-agent[0x804b6d1]
======= Memory map: ========
08048000-080e6000 r-xp 00000000 fd:06 341825     /usr/sbin/cf-agent
080e6000-080ec000 rw-p 0009e000 fd:06 341825     /usr/sbin/cf-agent
080ec000-08219000 rw-p 080ec000 00:00 0          
b7100000-b7121000 rw-p b7100000 00:00 0 
b7121000-b7200000 ---p b7121000 00:00 0 
b72b0000-b72bc000 r-xp 00000000 fd:03 49189      /lib/libgcc_s.so.1
b72bc000-b72bd000 rw-p 0000b000 fd:03 49189      /lib/libgcc_s.so.1
b72bd000-b72c4000 r-xp 00000000 fd:03 51293      /lib/libnss_compat-2.7.so
b72c4000-b72c6000 rw-p 00006000 fd:03 51293      /lib/libnss_compat-2.7.so
b72c6000-b72d5000 r-xp 00000000 fd:03 51292      /lib/libresolv-2.7.so
b72d5000-b72d7000 rw-p 0000e000 fd:03 51292      /lib/libresolv-2.7.so
b72d7000-b72d9000 rw-p b72d7000 00:00 0 
b72d9000-b72dd000 r-xp 00000000 fd:03 51306      /lib/libnss_dns-2.7.so
b72dd000-b72df000 rw-p 00003000 fd:03 51306      /lib/libnss_dns-2.7.so
b72df000-b72e1000 rw-p b72df000 00:00 0 
b72e1000-b72f5000 r-xp 00000000 fd:06 499714     /usr/lib/libz.so.1.2.3.3
b72f5000-b72f6000 rw-p 00013000 fd:06 499714     /usr/lib/libz.so.1.2.3.3
b72f6000-b72f8000 r-xp 00000000 fd:03 51298      /lib/libdl-2.7.so
b72f8000-b72fa000 rw-p 00001000 fd:03 51298      /lib/libdl-2.7.so
b72fa000-b7303000 r-xp 00000000 fd:03 51288      /lib/libnss_files-2.7.so
b7303000-b7305000 rw-p 00008000 fd:03 51288      /lib/libnss_files-2.7.so
b7305000-b7318000 r-xp 00000000 fd:03 51287      /lib/libnsl-2.7.so
b7318000-b731a000 rw-p 00012000 fd:03 51287      /lib/libnsl-2.7.so
b731a000-b731c000 rw-p b731a000 00:00 0 
b731c000-b7454000 r-xp 00000000 fd:03 51296      /lib/libc-2.7.so
b7454000-b7455000 r--p 00138000 fd:03 51296      /lib/libc-2.7.so
b7455000-b7457000 rw-p 00139000 fd:03 51296      /lib/libc-2.7.so
b7457000-b745b000 rw-p b7457000 00:00 0 
b745b000-b7595000 r-xp 00000000 fd:06 502985     
/usr/lib/i686/cmov/libcrypto.so.0.9.8
b7595000-b75ab000 rw-p 0013a000 fd:06 502985     
/usr/lib/i686/cmov/libcrypto.so.0.9.8
b75ab000-b75ae000 rw-p b75ab000 00:00 0 
b75ae000-b76de000 r-xp 00000000 fd:06 499715     /usr/lib/libdb-4.6.so
b76de000-b76e1000 rw-p 00130000 fd:06 499715     /usr/lib/libdb-4.6.so
b76e1000-b7705000 r-xp 00000000 fd:03 51289      /lib/libm-2.7.so
b7705000-b7707000 rw-p 00023000 fd:03 51289      /lib/libm-2.7.so
b7707000-b772f000 r-xp 00000000 fd:06 499912     /usr/lib/libpcre.so.3.12.1
b772f000-b7730000 rw-p 00027000 fd:06 499912     /usr/lib/libpcre.so.3.12.1
b7730000-b7737000 r-xp 00000000 fd:03 51299      /lib/librt-2.7.so
b7737000-b7739000 rw-p 00006000 fd:03 51299      /lib/librt-2.7.so
b7739000-b774d000 r-xp 00000000 fd:03 51305      /lib/libpthread-2.7.so
b774d000-b774f000 rw-p 00013000 fd:03 51305      /lib/libpthread-2.7.so
b774f000-b7751000 rw-p b774f000 00:00 0 
b7751000-b7759000 r-xp 00000000 fd:03 51304      /lib/libnss_nis-2.7.so
b7759000-b775b000 rw-p 00007000 fd:03 51304      /lib/libnss_nis-2.7.so
b775b000-b775c000 rw-p b775b000 00:00 0 
b775c000-b7760000 r-xp 00000000 fd:03 49172      /lib/libattr.so.1.1.0
b7760000-b7761000 rw-p 00003000 fd:03 49172      /lib/libattr.so.1.1.0
b7761000-b7767000 r-xp 00000000 fd:03 49323      /lib/libacl.so.1.1.0
b7767000-b7768000 rw-p 00005000 fd:03 49323      /lib/libacl.so.1.1.0
b777e000-b7780000 rw-p b777e000 00:00 0 
b7780000-b7781000 r-xp b7780000 00:00 0          
b7781000-b779b000 r-xp 00000000 fd:03 51295      /lib/ld-2.7.so
b779b000-b779d000 rw-p 0001a000 fd:03 51295      /lib/ld-2.7.soAborted
host:~# 

Policy look like this.

host:~# cat /tmp/testbug3.cf 

body common control
{
bundlesequence => { "etc_aliases" };

}

bundle agent etc_aliases
{

files:
        "/tmp/aliases"
                create => "true",
                edit_defaults => std_defs,
                edit_line => edit_aliases;


}


bundle edit_line edit_aliases
{



vars:

        "matches" int => getfields("root:.*","/tmp/aliases",":",root_alias),
                        comment => "Count the number of occurencers of root: 
and split the first occurance on : result is placed in root_alias";

        "bla" slist => { "root:" , "$(root_alias[2])" , ", r...@axis.com" },
                                comment => "Create a string list containing the 
old root line + ,r...@axis.com";

        "new_root_alias" string => join("", bla ),
                                comment => "join the stringlist for the new 
root line to a string";


reports:
linux::
        "matches: $(matches)";
        "root_alias: $(root_alias[2])";
        "bla: $(bla)";


}

body edit_defaults std_defs
{
empty_file_before_editing => "false";
edit_backup => "false";
max_file_size => "300000";
}


/tmp aliases look like this 

host: # cat /tmp/aliases
root:   r...@axis.com
host: #

_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to