I keep getting seg faults with my replace_patterns portion of edit_line. Here's
a code snippet that correctly works:
bundle edit_line shadow
{
delete_lines:
"root.*";
insert_lines:
"root:$1$TypicalHashEncoding:13949:0:99999:7:::" location => start;
}
Now, if I add this to that edit_line bundle:
replace_patterns:
"user.*" replace_with =>
With("user:$1$AnotherHashEnconding:13935:0:99999:7:::");
It will seg fault. I thought maybe it was from non-alphanumeric characters, so
I put this in:
"user.*" replace_with => With("user");
And it still seg faults. The With body is straight from the
documentation/examples as follows:
body replace_with With(x)
{
replace_value => "$(x)";
occurrences => "all";
}
The edit_line gets called as follows:
bundle agent main
{
... other non-related code ...
files:
"/etc/shadow"
create => "true",
edit_line => shadow,
edit_defaults => def;
}
The edit_defaults is thus:
body edit_defaults def
{
empty_file_before_editing => "false";
edit_backup => "false";
max_file_size => "100000";
}
Output from gdb:
#0 0x00723f03 in regexec@@GLIBC_2.3.4 () from /lib/libc.so.6
#1 0x0808d85a in RegExMatchSubString ()
#2 0x08069d52 in ReplacePatterns ()
#3 0x0806abb0 in VerifyPatterns ()
#4 0x0808bb0a in ExpandPromiseAndDo ()
#5 0x0808c1e3 in ExpandPromise ()
#6 0x0806b318 in ScheduleEditLineOperations ()
#7 0x08066bdf in ScheduleEditOperation ()
#8 0x08061654 in VerifyFilePromise ()
#9 0x0804c88c in LocateFilePromiserGroup ()
#10 0x0804ce67 in FindFilePromiserObjects ()
#11 0x0804ce8a in FindAndVerifyFilesPromises ()
#12 0x0804b480 in KeepAgentPromise ()
#13 0x0808bb0a in ExpandPromiseAndDo ()
#14 0x0808c1e3 in ExpandPromise ()
#15 0x0804b716 in ScheduleAgentOperations ()
#16 0x0804b8c6 in KeepPromiseBundles ()
#17 0x0804c3b5 in KeepPromises ()
#18 0x0804c7d4 in main ()
Any suggestions?
_______________________________________________
Bug-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/bug-cfengine