Mailinglist Archive: opensuse-security (465 mails)

< Previous Next >
SIGALARM SuSe7.0 harden_suse
  • From: Zoran Cvetkovic <Zoran.Cvetkovic@xxxxxxxxx>
  • Date: Mon, 10 Dec 2001 16:26:41 +0100
  • Message-id: <3C14D431.ACD40030@xxxxxxxxx>
Hello

I do have a strange problem with some SuSe 7.0 + hardensuse Systems.
The handling of SIGALARM is not working correclty form remote shells.

Take a look at that test code

#include <unistd.h>
int main()
{
alarm (1);
while( 1 );
}

It correctly will terminate the process coursed by handling of SIGALARM
after 1 s.
(SIGALARM defaults to terminate the process)


Now take a look on that 6 (different in hardware) Suse7.0 + hardensuse
Systems:

Executed from the physical console (ttyx) it will terminate, but
executed from remote (via ssh ) the testprogramm does not terminate!!!
It's running endless !!!!

If I do send the ALRM signal manually nothing happens too,
but if I do send SIGTERM ... the test program terminates.

Same with other programms that depend on SIGALARM
eg ping sends only 1 icmp packet, and than waits for a never comming
signal.
Running it form console works out as usual.

I tried with Kernels from 2.2.16 - 2.2.20 with and without UNIX98 TTYS -
no change.

Here is the strace output of that test code.

> strace alrmtest
execve("./alrmtest", ["alrmtest"], [/* 45 vars */]) = 0
brk(0) = 0x8049588
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=16882, ...}) = 0
old_mmap(NULL, 16882, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2aabf000
close(3) = 0
open("/lib/libc.so.6", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=4070406, ...}) = 0
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\214"...,
4096) = 4096
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0x2aac4000
old_mmap(NULL, 929308, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) =
0x2aac5000
mprotect(0x2aba0000, 32284, PROT_NONE) = 0
old_mmap(0x2aba0000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED,
3, 0xda000) = 0x2aba0000
old_mmap(0x2aba5000, 11804, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2aba5000
close(3) = 0
munmap(0x2aabf000, 16882) = 0
getpid() = 3922
alarm(1) = 0

....and freezzzzzzzzz !


So why is SIGALARM broken ?
How to hunt down that problem ?


Kindly Regards
Zoran Cvetkovic
--
aixigo AG - financial training, research and technology
Schloß-Rahe-Straße 15, 52072 Aachen, Germany
fon: +49 (0)241 936737-70, fax: +49 (0)241 936737-99
eMail: Zoran.Cvetkovic@xxxxxxxxx, web: http://www.aixigo.de

< Previous Next >
This Thread
  • No further messages