Linux kernel: Samba doesn't detect coredump path override by
sysctl kernel.core_pattern
Tim Prouty
tprouty at samba.org
Fri Feb 27 00:21:27 MST 2009
On Feb 26, 2009, at 6:37 AM, Timur I. Bakeyev wrote
> I've looked into the patch and got few comments regarding it.
>
> > + * On FreeBSD the current working directory is ignored when
> creating a core file
>
> That's not entirely correct statement, default value of
> kern.corefile is "%N.core", which assumes dumping core in the CWD.
> So, I guess, at least comment should be rephrased.
Ahh, I was not aware of this. I'll have to change some of the code to
fall back to the current working directory in the case where
kern.corefile[0] != '/'.
> + if (len > 1024) {
> + goto err_out;
> + }
>
> I'd use MAXPATHLEN instead of hardcoded 1024 to be more portable.
>
> In general, instead of doing loop to approximate necessary buffer
> size it could be cheaper to call sysctl*() with the NULL buffer and
> receive exact size of the MIB value.
It was unclear from the man page whether the *oldplen would actually
be set to the necessary size if the *oldp buffer was too small or
NULL. If this is how the API works, there is still the possibility of
a race where someone sets the sysctl between the time it is checked
with the NULL buffer, and the second call, so a loop is still the most
robust approach. I'll test the API and check out how it's implemented
in the kernel to see if I can make this better.
> Another thing that should be kept in mind is the usage of expandable
> variables. For example, core(5) gives such an example:
>
> kern.corefile="/var/coredumps/%U/%N.core"
>
> Which means that all the core files will go into the /var/coredumps/$
> {UID}/ directory. It could be any other combination of the flags, so
> if we want to show exact path where the core file will be dumped we
> need to expand those variables first.
>
> Code example for such a routine can be found in /usr/src/sys/kern/
> kern_sig.c:expand_name().
>
> In general, I'm not sure does one string on a core dump worth all
> this hassle :)
Yes, I agree that it's not worth doing the full expansion, and I have
no plans to do it :).
Thanks for the feedback Timur. I'll work on implementing your
suggestions.
-Tim
More information about the samba-technical
mailing list