svn commit: r228809 - vendor/openpam/dist/lib
Gleb Smirnoff
glebius at FreeBSD.org
Thu Dec 22 18:22:21 UTC 2011
Dag-Erling,
On Thu, Dec 22, 2011 at 06:10:15PM +0000, Dag-Erling Smorgrav wrote:
D> Author: des
D> Date: Thu Dec 22 18:10:15 2011
D> New Revision: 228809
D> URL: http://svn.freebsd.org/changeset/base/228809
D>
D> Log:
D> Merge upstream r509: don't log an error in the common case (ENOENT).
D>
D> Modified:
D> vendor/openpam/dist/lib/openpam_check_owner_perms.c
D>
D> Modified: vendor/openpam/dist/lib/openpam_check_owner_perms.c
D> ==============================================================================
D> --- vendor/openpam/dist/lib/openpam_check_owner_perms.c Thu Dec 22 16:40:35 2011 (r228808)
D> +++ vendor/openpam/dist/lib/openpam_check_owner_perms.c Thu Dec 22 18:10:15 2011 (r228809)
D> @@ -104,9 +104,11 @@ openpam_check_path_owner_perms(const cha
D> len = strlen(pathbuf);
D> while (len > 0) {
D> if (stat(pathbuf, &sb) != 0) {
D> - serrno = errno;
D> - openpam_log(PAM_LOG_ERROR, "%s: %m", pathbuf);
D> - errno = serrno;
D> + if (errno != ENOENT) {
D> + serrno = errno;
D> + openpam_log(PAM_LOG_ERROR, "%s: %m", pathbuf);
D> + errno = serrno;
D> + }
D> return (-1);
D> }
D> if ((sb.st_uid != root && sb.st_uid != arbitrator) ||
I haven't yet tested this, but code looks like it is not going to print
anything in a case I don't have /usr/local/bin/pam_foo.so, while purpose
of the patch is to avoid logging of failure to open
/usr/local/bin/pam_foo.so.5.
Although openpam_dynamic() will do some logging of errno value, the name
of the failed file won't be logged. If I got a lot of modules configured,
then I can't figure out which one is ENOENT.
IMHO, some no_log flag should be passed down from the try_dlopen() to fix
the issue correctly.
--
Totus tuus, Glebius.
More information about the svn-src-vendor
mailing list