https://bugzilla.novell.com/show_bug.cgi?id=211881
Summary: glic doesn't handle correct with parameter for some
functions: timer_delete(), timer_getoverrun(),
timer_gettime(), timer_settime()
Product: SUSE Linux 10.1
Version: Final
Platform: All
OS/Version: SuSE Linux 10.1
Status: NEW
Severity: Normal
Priority: P5 - None
Component: Development
AssignedTo: pth@novell.com
ReportedBy: yxu@novell.com
QAContact: qa@suse.de
an example testcase:
#include
#include
#include
#include "posixtest.h"
int main(int argc, char *argv[])
{
timer_t tid;
int test=1;
tid = (timer_t) test;
if (timer_delete(tid) == -1) {
if (errno==EINVAL) {
printf("timer_delete() returned -1 and set
errno=EINVAL\n");
return PTS_PASS;
} else {
printf("timer_delete() returned -1, but didn't set
errno!=EINVAL\n");
return PTS_FAIL;
}
}
printf("timer_delete() did not return -1\n");
return PTS_PASS;
}
It will give output segfault. And strace shows:
execve("./5-1", ["./5-1"], [/* 93 vars */]) = 0
brk(0) = 0x804a000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xb7fa9000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=160239, ...}) = 0
mmap2(NULL, 160239, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f81000
close(3) = 0
open("/lib/libm.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0004\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=180631, ...}) = 0
mmap2(NULL, 147584, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0xb7f5c000
madvise(0xb7f5c000, 147584, MADV_SEQUENTIAL|0x1) = 0
mmap2(0xb7f7f000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x22) = 0xb7f7f000
close(3) = 0
open("/lib/librt.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\35\0\000"..., 512) =
512
fstat64(3, {st_mode=S_IFREG|0755, st_size=40297, ...}) = 0
mmap2(NULL, 33356, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0xb7f53000
madvise(0xb7f53000, 33356, MADV_SEQUENTIAL|0x1) = 0
mmap2(0xb7f5a000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6) = 0xb7f5a000
close(3) = 0
open("/lib/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300Y\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1404242, ...}) = 0
mmap2(NULL, 1176988, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0xb7e33000
madvise(0xb7e33000, 1176988, MADV_SEQUENTIAL|0x1) = 0
mmap2(0xb7f4c000, 16384, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x118) = 0xb7f4c000
mmap2(0xb7f50000, 9628, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f50000
close(3) = 0
open("/lib/libpthread.so.0", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200K\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=100331, ...}) = 0
mmap2(NULL, 78304, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0xb7e1f000
madvise(0xb7e1f000, 78304, MADV_SEQUENTIAL|0x1) = 0
mmap2(0xb7e2f000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf) = 0xb7e2f000
mmap2(0xb7e31000, 4576, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7e31000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xb7e1e000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xb7e1d000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7e1d6b0, limit:1048575,
seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0,
useable:1}) = 0
mprotect(0xb7f4c000, 8192, PROT_READ) = 0
munmap(0xb7f81000, 160239) = 0
set_tid_address(0xb7e1d6f8) = 13374
rt_sigaction(SIGRTMIN, {0xb7e23760, [], SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0xb7e23670, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
_sysctl({{CTL_KERN, KERN_VERSION}, 2, 0xbfccc740, 36, (nil), 0}) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Process 13374 detached
If I didn't assign any value to variable "test", then it will succeed and
return EINVAL as supposed to.
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.