(mod_auth_)pam crashes solaris 8 server

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

We use mod_auth_pam 1.1.2 (the logging version Ingo posted to this
list about a week ago) with apache 1.3.26 on a Solaris 8 server.

Everything works fine as long as a user provides a username (a single
character does the job actually). If he does not provide a username
things go horribly wrong, though: the httpd child serving the request
is eating up all the memory within seconds, finally crashing the
server.

The httpd section of my /etc/pam.conf looks like this:

# Apache mod_auth_pam
httpd  auth     required  /usr/lib/security/$ISA/pam_unix.so.1 debug
httpd  account  required  /usr/lib/security/$ISA/pam_unix.so.1

I am not sure if this is a mod_auth_pam or a Solaris pam problem. If
the process goes crazy nothing is logged at all, neither by
mod_auth_pam nor by pam_unix.so.1.

A truss of the httpd child serving a "normal" auth request (i.e. one
where the user enters at least a char as username) looks like this:

---------------------------------------
read(11, 0x000E2A50, 4096)	(sleeping...)
signotifywait()			(sleeping...)
lwp_sema_wait(0xFDB0DE30)	(sleeping...)
read(11, " G E T   / ~ t h o m i  ".., 4096)	= 484
sigaction(SIGUSR1, 0xFFBED0E8, 0xFFBED1E8)	= 0
time()						= 1031858448
door_info(5, 0xFFBEEB88)			= 0
door_call(5, 0xFFBEEB70)			= 0
stat("/home/gis/thomi/www", 0x00188D60)		= 0
open("/home/gis/thomi/www/.htaccess", O_RDONLY)	= 13
fstat(13, 0xFFBEF030)				= 0
fstat64(13, 0xFFBECE68)				= 0
ioctl(13, TCGETA, 0xFFBECDF4)			Err#25 ENOTTY
read(13, " A u t h N a m e   " A c".., 8192)	= 207
read(13, 0x001F44A4, 8192)			= 0
llseek(13, 0, SEEK_CUR)				= 207
close(13)					= 0
stat64("/etc/pam_debug", 0xFFBEF028)		Err#2 ENOENT
stat64("/etc/pam.conf", 0xFFBEEE60)		= 0
open("/etc/pam.conf", O_RDONLY)			= 13
mmap(0x00000000, 2403, PROT_READ, MAP_PRIVATE, 13, 0) = 0xFF120000
munmap(0xFF120000, 2403)			= 0
close(13)					= 0
stat64("/usr/lib/security/pam_unix.so.1", 0xFFBEEF68) = 0
open("/usr/lib/security/pam_unix.so.1", O_RDONLY) = 13
fstat(13, 0xFFBEE8AC)				= 0
mmap(0x00000000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = 0xFF120000
mmap(0x00000000, 188416, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = 0xFEB80000
mmap(0xFEBA8000, 17213, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 13, 98304) = 0xFEBA8000
munmap(0xFEB98000, 65536)			= 0
memcntl(0xFEB80000, 19696, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(13)					= 0
open("/usr/lib/libcmd.so.1", O_RDONLY)		= 13
fstat(13, 0xFFBEE7EC)				= 0
mmap(0xFF120000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 13, 0) = 0xFF120000
mmap(0x00000000, 90112, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = 0xFEB60000
mmap(0xFEB74000, 1155, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 13, 16384) = 0xFEB74000
munmap(0xFEB64000, 65536)			= 0
memcntl(0xFEB60000, 4344, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(13)					= 0
munmap(0xFF120000, 8192)			= 0
fstat(12, 0xFFBEE450)				= 0
time()						= 1031858448
getpid()					= 403 [389]
putmsg(12, 0xFFBEDB08, 0xFFBEDAFC, 0)		= 0
open("/var/run/syslog_door", O_RDONLY)		= 13
door_info(13, 0xFFBEDA40)			= 0
getpid()					= 403 [389]
door_call(13, 0xFFBEDA28)			= 0
close(13)					= 0
door_info(5, 0xFFBEE1F0)			= 0
door_call(5, 0xFFBEE1D8)			= 0
fstat(12, 0xFFBEEE08)				= 0
time()						= 1031858448
getpid()					= 403 [389]
putmsg(12, 0xFFBEE4C0, 0xFFBEE4B4, 0)		= 0
open("/var/run/syslog_door", O_RDONLY)		= 13
door_info(13, 0xFFBEE3F8)			= 0
getpid()					= 403 [389]
door_call(13, 0xFFBEE3E0)			= 0
close(13)					= 0
time()						= 1031858448
write(15, " [ T h u   S e p   1 2  ".., 150)	= 150
munmap(0xFEBA8000, 17256)			= 0
munmap(0xFEB80000, 92706)			= 0
munmap(0xFEB74000, 1184)			= 0
munmap(0xFEB60000, 10780)			= 0
write(11, " H T T P / 1 . 1   4 0 1".., 821)	= 821
time()						= 1031858448
write(20, " 1 3 0 . 6 0 . 1 7 6 . 1".., 83)	= 83
sigaction(SIGUSR1, 0xFFBEF1F8, 0xFFBEF2F8)	= 0
read(11, 0x000E2A50, 4096)	(sleeping...)
signotifywait()			(sleeping...)
lwp_sema_wait(0xFDB0DE30)	(sleeping...)
------------------------------------------

whereas a crashing auth request (where the user does not supply a username)
looks the same in the beginning but ends like this:

------------------------------------------
[snip]

stat64("/etc/pam_debug", 0xFFBEF0D0)		Err#2 ENOENT
stat64("/etc/pam.conf", 0xFFBEEF08)		= 0
open("/etc/pam.conf", O_RDONLY)			= 13
mmap(0x00000000, 2403, PROT_READ, MAP_PRIVATE, 13, 0) = 0xFF130000
munmap(0xFF130000, 2403)			= 0
close(13)					= 0
stat64("/usr/lib/security/pam_unix.so.1", 0xFFBEF010) = 0
open("/usr/lib/security/pam_unix.so.1", O_RDONLY) = 13
fstat(13, 0xFFBEE954)				= 0
mmap(0x00000000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = 0xFF130000
mmap(0x00000000, 188416, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = 0xFEB80000
mmap(0xFEBA8000, 17213, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 13, 98304) = 0xFEBA8000
munmap(0xFEB98000, 65536)			= 0
memcntl(0xFEB80000, 19696, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(13)					= 0
open("/usr/lib/libcmd.so.1", O_RDONLY)		= 13
fstat(13, 0xFFBEE894)				= 0
mmap(0xFF130000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 13, 0) = 0xFF130000
mmap(0x00000000, 90112, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = 0xFEB60000
mmap(0xFEB74000, 1155, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 13, 16384) = 0xFEB74000
munmap(0xFEB64000, 65536)			= 0
memcntl(0xFEB60000, 4344, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(13)					= 0
munmap(0xFF130000, 8192)			= 0
brk(0x00192958)					= 0
brk(0x00194958)					= 0
brk(0x00194958)					= 0
brk(0x00196958)					= 0
brk(0x00196958)					= 0
brk(0x00198958)					= 0
brk(0x00198958)					= 0
brk(0x0019A958)					= 0
brk(0x0019A958)					= 0

[snip -- thousands of brk calls following, till the memory is gone ]

------------------------------------------

Has anyone seen something similar? Can anyone tell if this is a pam
or a mod_auth_pam problem? Any help is greatly appreciated.

Thanks,
Thomas







_______________________________________________

Pam-list@redhat.com
https://listman.redhat.com/mailman/listinfo/pam-list

[Index of Archives]     [Fedora Users]     [Kernel]     [Red Hat Install]     [Linux for the blind]     [Gimp]

  Powered by Linux