Страница 1 из 2

[program-nazi] segfault ports/security/termlog FreeBSD 8.1

Добавлено: 2010-07-28 12:31:52
Alex Keda
имеем ports/security/termlog и FreeBSD 8.1 i386
не работает

Код: Выделить всё

srv6# truss /usr/local/bin/termlog -C /var/log/termlog/2010/07/28 -f -n 30
__sysctl(0xbfbfe4e4,0x2,0xbfbfe4ec,0xbfbfe4f0,0x0,0x0) = 0 (0x0)
mmap(0x0,328,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 671645696 (0x28088000)
munmap(0x28088000,328)                           = 0 (0x0)
__sysctl(0xbfbfe548,0x2,0x2807ee3c,0xbfbfe550,0x0,0x0) = 0 (0x0)
mmap(0x0,32768,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 671645696 (0x28088000)
issetugid(0x280778cb,0xbfbfea0c,0x104,0x0,0x0,0x0) = 0 (0x0)
open("/etc/libmap.conf",O_RDONLY,0666)           ERR#2 'No such file or directory'
open("/var/run/ld-elf.so.hints",O_RDONLY,00)     = 2 (0x2)
read(2,"Ehnt\^A\0\0\0\M^@\0\0\0\M-s\0\0"...,128) = 128 (0x80)
lseek(2,0x80,SEEK_SET)                           = 128 (0x80)
read(2,"/lib:/usr/lib:/usr/lib/compat:/u"...,243) = 243 (0xf3)
close(2)                                         = 0 (0x0)
access("/lib/libmd.so.5",0)                      = 0 (0x0)
open("/lib/libmd.so.5",O_RDONLY,00)              = 2 (0x2)
fstat(2,{ mode=-r--r--r-- ,inode=1483841,size=61600,blksize=16384 }) = 0 (0x0)
pread(0x2,0x2807dd80,0x1000,0x0,0x0,0x0)         = 4096 (0x1000)
mmap(0x0,65536,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 671678464 (0x28090000)
mmap(0x28090000,61440,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE,2,0x0) = 671678464 (0x28090000)
mmap(0x2809f000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED,2,0xe000) = 671739904 (0x2809f000)
close(2)                                         = 0 (0x0)
access("/lib/libthr.so.3",0)                     = 0 (0x0)
open("/lib/libthr.so.3",O_RDONLY,027757762474)   = 2 (0x2)
fstat(2,{ mode=-r--r--r-- ,inode=1483846,size=76540,blksize=16384 }) = 0 (0x0)
pread(0x2,0x2807dd80,0x1000,0x0,0x0,0x0)         = 4096 (0x1000)
mmap(0x0,86016,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 671744000 (0x280a0000)
mmap(0x280a0000,73728,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE,2,0x0) = 671744000 (0x280a0000)
mmap(0x280b2000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED,2,0x11000) = 671817728 (0x280b2000)
mprotect(0x280b3000,8192,PROT_READ|PROT_WRITE)   = 0 (0x0)
close(2)                                         = 0 (0x0)
access("/lib/libc.so.7",0)                       = 0 (0x0)
open("/lib/libc.so.7",O_RDONLY,027757762474)     = 2 (0x2)
fstat(2,{ mode=-r--r--r-- ,inode=1483837,size=1142616,blksize=16384 }) = 0 (0x0)
pread(0x2,0x2807dd80,0x1000,0x0,0x0,0x2000)      = 4096 (0x1000)
mmap(0x0,1150976,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 671830016 (0x280b5000)
mmap(0x280b5000,1028096,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE,2,0x0) = 671830016 (0x280b5000)
mmap(0x281b0000,24576,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED,2,0xfb000) = 672858112 (0x281b0000)
mprotect(0x281b6000,98304,PROT_READ|PROT_WRITE)  = 0 (0x0)
close(2)                                         = 0 (0x0)
sysarch(0xa,0xbfbfe5b0,0x2804e37b,0x2807d2f8,0x28060dd9,0x2807d2f8) = 0 (0x0)
mmap(0x0,592,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 672980992 (0x281ce000)
munmap(0x281ce000,592)                           = 0 (0x0)
mmap(0x0,824,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 672980992 (0x281ce000)
munmap(0x281ce000,824)                           = 0 (0x0)
mmap(0x0,4064,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 672980992 (0x281ce000)
munmap(0x281ce000,4064)                          = 0 (0x0)
mmap(0x0,21896,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 672980992 (0x281ce000)
munmap(0x281ce000,21896)                         = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
__sysctl(0xbfbfe564,0x2,0x281b76a0,0xbfbfe56c,0x0,0x0) = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
getpid()                                         = 72055 (0x11977)
__sysctl(0xbfbfe54c,0x2,0x280b4cd0,0xbfbfe558,0x0,0x0) = 0 (0x0)
__sysctl(0xbfbfe4e4,0x2,0xbfbfe47c,0xbfbfe4ec,0x280b1503,0xd) = 0 (0x0)
__sysctl(0xbfbfe47c,0x3,0x280b3fc8,0xbfbfe558,0x0,0x0) = 0 (0x0)
__sysctl(0xbfbfe4e8,0x2,0x281bc7c0,0xbfbfe4f0,0x0,0x0) = 0 (0x0)
__sysctl(0xbfbfe024,0x2,0x281bc360,0xbfbfe02c,0x0,0x0) = 0 (0x0)
__sysctl(0xbfbfdf44,0x2,0xbfbfdedc,0xbfbfdf4c,0x281a7cf4,0xc) = 0 (0x0)
__sysctl(0xbfbfdedc,0x2,0x281bc458,0xbfbfdf88,0x0,0x0) = 0 (0x0)
readlink("/etc/malloc.conf",0xbfbfe033,1024)     ERR#2 'No such file or directory'
issetugid(0x281a6a09,0xbfbfe033,0x400,0xbfbfe02c,0x0,0x0) = 0 (0x0)
break(0x8100000)                                 = 0 (0x0)
__sysctl(0xbfbfe2b4,0x2,0xbfbfe2bc,0xbfbfe2c0,0x0,0x0) = 0 (0x0)
mmap(0x0,1048576,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 672980992 (0x281ce000)
mmap(0x282ce000,204800,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 674029568 (0x282ce000)
munmap(0x281ce000,204800)                        = 0 (0x0)
thr_self(0x28201140,0x280b3fc8,0xbfbfe558,0x0,0x0,0x0) = 0 (0x0)
mmap(0xbf9ff000,4096,PROT_NONE,MAP_ANON,-1,0x0)  = -1080037376 (0xbf9ff000)
thr_set_name(0x1880c,0x280b154b,0x0,0x1000,0xffffffff,0x0) = 0 (0x0)
rtprio_thread(0x0,0x1880c,0xbfbfe4ec,0x2808a400,0x328,0x2808c28c) = 0 (0x0)
sysarch(0xa,0xbfbfe500,0xbfbfe554,0x2808c28c,0x280fff49,0x280b2c34) = 0 (0x0)
sigprocmask(SIG_SETMASK,SIGHUP|SIGINT|SIGQUIT|SIGILL|SIGABRT|SIGEMT|SIGFPE|SIGKILL|SIGBUS|SIGSEGV|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigaction(32,{ 0x280aa620 SA_RESTART|SA_SIGINFO ss_t },0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
chdir("/var/log/termlog/2010/07/28")             = 0 (0x0)
modfind(0x804b3cb,0xbfbfeb94,0x804b3b6,0xbfbfeb3c,0xbfbfeb94,0xbfbfeb94) = 470 (0x1d6)
ioctl(0,TIOCGETA,0xbfbfea90)                     = 0 (0x0)
ioctl(0,FIODGNAME,0xbfbfeab8)                    = 0 (0x0)
socket(PF_LOCAL,SOCK_DGRAM,0)                    = 2 (0x2)
fcntl(2,F_SETFD,FD_CLOEXEC)                      = 0 (0x0)
connect(2,{ AF_UNIX "/var/run/logpriv" },106)    = 0 (0x0)
sigaction(SIGUSR1,{ 0x8049840 SA_RESTART ss_t },{ SIG_DFL 0x0 ss_t }) = 0 (0x0)
_umtx_op(0xbfbfea2c,0x3,0x1,0x0,0x0,0x2807d6a0)  = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGABRT|SIGEMT|SIGKILL|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGABRT|SIGEMT|SIGKILL|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
mmap(0xbf8fe000,1052672,PROT_READ|PROT_WRITE,MAP_STACK,-1,0x0) = -1081090048 (0xbf8fe000)
mprotect(0xbf8fe000,4096,PROT_NONE)              = 0 (0x0)
thr_new(0xbfbfeaa0,0x34,0x2807d2f8,0x2808e030,0x2808a000,0xbfbfeaa4) = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGABRT|SIGEMT|SIGKILL|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
_umtx_op(0x280b3900,0xd,0x0,0x0,0x0,0x280b3900)  = 0 (0x0)
_umtx_op(0x280b3900,0xc,0x0,0x0,0x0,0x2808e0a0)  = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
open("//var/run/utmp",O_RDONLY,00)               = 3 (0x3)
mmap(0xbf7fd000,1052672,PROT_READ|PROT_WRITE,MAP_STACK,-1,0x0) = -1082142720 (0xbf7fd000)
fstat(3,{ mode=-rw-r--r-- ,inode=23596,size=12144,blksize=16384 }) = 0 (0x0)
mprotect(0xbf7fd000,4096,PROT_NONE)              = 0 (0x0)
open("//var/run/utmp",O_RDONLY,00)               = 4 (0x4)
thr_new(0xbfbfeaa0,0x34,0x2807d2f8,0x2808e030,0x2808a000,0xbfbfeaa4) = 0 (0x0)
mmap(0x0,12144,PROT_READ,MAP_SHARED,4,0x0)       = 672980992 (0x281ce000)
sigprocmask(SIG_BLOCK,0x0,0x0)                   = 0 (0x0)
stat("//dev/pts/0",{ mode=crw--w---- ,inode=113,size=0,blksize=4096 }) = 0 (0x0)
mmap(0x0,1048576,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 674234368 (0x28300000)
stat("//dev/pts/0",{ mode=crw--w---- ,inode=113,size=0,blksize=4096 }) = 0 (0x0)
stat("/dev/snp0",{ mode=crw------- ,inode=107,size=0,blksize=4096 }) = 0 (0x0)
open("/dev/snp0",O_RDONLY,00)                    = 5 (0x5)
open("//dev/pts/0",O_NONBLOCK,00)                = 6 (0x6)
ioctl(5,SNPSTTY,0xbf9fe694)                      = 0 (0x0)
close(6)                                         = 0 (0x0)
clock_gettime(13,{1280309256.000000000 })        = 0 (0x0)
open("h10282_pts/0_1280309256.log",O_WRONLY|O_CREAT|O_TRUNC,0666) ERR#2 'No such file or directory'
stat("//dev/pts/2",{ mode=crw--w---- ,inode=115,size=0,blksize=4096 }) = 0 (0x0)
stat("//dev/pts/2",{ mode=crw--w---- ,inode=115,size=0,blksize=4096 }) = 0 (0x0)
stat("/dev/snp0",{ mode=crw------- ,inode=107,size=0,blksize=4096 }) = 0 (0x0)
open("/dev/snp0",O_RDONLY,00)                    = 6 (0x6)
open("//dev/pts/2",O_NONBLOCK,00)                = 7 (0x7)
ioctl(6,SNPSTTY,0xbf9fe694)                      = 0 (0x0)
close(7)                                         = 0 (0x0)
clock_gettime(13,{1280309256.000000000 })        = 0 (0x0)
open("lissyara_pts/2_1280309256.log",O_WRONLY|O_CREAT|O_TRUNC,0666) ERR#2 'No such file or directory'
stat("//dev/pts/3",{ mode=crw--w---- ,inode=117,size=0,blksize=4096 }) = 0 (0x0)
stat("//dev/pts/3",{ mode=crw--w---- ,inode=117,size=0,blksize=4096 }) = 0 (0x0)
stat("/dev/snp0",{ mode=crw------- ,inode=107,size=0,blksize=4096 }) = 0 (0x0)
open("/dev/snp0",O_RDONLY,00)                    = 7 (0x7)
open("//dev/pts/3",O_NONBLOCK,00)                = 8 (0x8)
ioctl(7,SNPSTTY,0xbf9fe694)                      = 0 (0x0)
close(8)                                         = 0 (0x0)
clock_gettime(13,{1280309256.000000000 })        = 0 (0x0)
open("lissyara_pts/3_1280309256.log",O_WRONLY|O_CREAT|O_TRUNC,0666) ERR#2 'No such file or directory'
nanosleep({0.500000000 })                        = 0 (0x0)
fstat(3,{ mode=-rw-r--r-- ,inode=23596,size=12144,blksize=16384 }) = 0 (0x0)
nanosleep({0.500000000 })                        = 0 (0x0)
select(8,{5 6 7},0x0,0x0,{1.000000 })            = 1 (0x1)
ioctl(6,FIONREAD,0xbf8fbf4c)                     = 0 (0x0)
read(6,"ioctl(6,SNPSTTY,0xbf9fe694)\t\t"...,992) = 992 (0x3e0)
SIGNAL 11 (SIGSEGV)
process exit, rval = 0
если создать директорию

Код: Выделить всё

/var/log/termlog/2010/07/28/lissyara_pts
то работает. но не могу же для каждого юзера субдиректорию создавать =(((

если я правильно понимаю, сменилось местоположение консолей, по сравнению с 7, но почему оно префикс стало прилепалять - непонимаю...

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 12:39:00
Гость
отписать автору
сказать что он урод и пусть фиксит
за одно обновить порты
а вдруг уже пофиксили

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 12:41:24
f_andrey

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 12:49:51
Alex Keda
не пофиксили.
последние правки в этот порт я вносил, пару лет назад =))

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 12:52:34
Alex Keda
f_andrey писал(а):Кстати не оно? http://lists.freebsd.org/pipermail/free ... 18757.html
нет. не оно.
он пытается открыть на запись файл в несуществующей директории.
откуда она берётся - понятно, лезет в utmp, а там такое:
srv6# w

Код: Выделить всё

13:50  up 11 days, 22:32, 3 users, load averages: 1,12 1,25 1,29
USER             TTY      FROM              LOGIN@  IDLE WHAT
h10282           pts/0    85.236.17.194    12:10      47 mc
lissyara         pts/2    195.93.240.106   13:14       - w
lissyara         pts/3    195.93.240.106   13:25      24 _su (csh)
srv6#    
вот из сложения певой и второй колонки и получается тот самый путь с несуществующей директорией.
надо сделать чё-то типа

Код: Выделить всё

str_replace("/","_",$string)
над результатом конкатенации столбцов USER и TTY до того как добавлять полученное значение в путь
тока я на сях не умею...

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 13:00:09
Гость
файл termlog.c

ищешь

Код: Выделить всё

thistty = rindex(thistty, '/');
if(thistty)
+{
     thistty++;
+   thistty++;
+}

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 13:11:34
Гость
не не то

надо подумать

это еще кстати фигня
привыкай к тому что на 9 и выше этот термлог вообще не будет работать

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 13:13:37
Alex Keda
до 9 в продакшен ещё годик...
может больше.
к тому времени либо пофиксят либо буду искать когонить чтоб за денежку пофиксили - чую там правки будет немеряно - проще переписать будет

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 13:14:44
Alex Keda
Гость писал(а):не не то

надо подумать
а помоему именно то. надо tty который в путь добавляется обработать на предмет исключения/замены прямых слешей в нём и всё.
вот тока найти не могу где это в сорцах

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 13:16:45
Alex Keda
хм... действительно а чё эта херь делает -

Код: Выделить всё

        thistty = ttyname(0);
        if (thistty) {
                thistty = rindex(thistty, '/');
                if (thistty)
                        thistty++;
        }
всё что справа от слэша же берёт? а почему не работает

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 13:30:27
Гость
отменяй то исправление
и

termlog.c

в функции processutmp

Код: Выделить всё

-   struct utmp *utmp, *up;
+   struct utmp *utmp, *up, utmp_rw;
ниже в этой же функции

Код: Выделить всё

for(i = 0; i < n; i++) {
-           up = &utmp[i];
+          memcpy(utmp_rw, utmp[i], sizeof(utmp_rw));
+          up = &utmp_rw;
+          rindex(up->ut_line,'/') ++;

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 13:40:35
Alex Keda
не компилиццо

Код: Выделить всё

===>  Building for termlog-2.5_1
cc -O2 -pipe -fno-strict-aliasing  -I. -Wall -Wbad-function-cast -Wcast-align -Wcast-qual -Wchar-subscripts -Winline -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wredundant-decls -Wshadow -Wstrict-prototypes -Wwrite-strings -g -DNDEBUG -c termlog.c
termlog.c:68: warning: initialization discards qualifiers from pointer target type
termlog.c: In function 'processutmp':
termlog.c:527: error: incompatible type for argument 1 of 'memcpy'
termlog.c:527: error: incompatible type for argument 2 of 'memcpy'
termlog.c:529: error: lvalue required as increment operand
*** Error code 1

Stop in /tmp/home/usr_moved/ports/security/termlog/work/termlog-2.5.
*** Error code 1

Stop in /home/usr_moved/ports/security/termlog.
srv6#    

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 13:42:00
Alex Keda

Код: Выделить всё

srv6# cat ~lissyara/termlog.c.diff
--- termlog-2.5/termlog.c.orig  2010-07-28 14:37:17.000000000 +0400
+++ termlog-2.5/termlog.c       2010-07-28 14:38:57.000000000 +0400
@@ -497,7 +497,7 @@
 {
        static int fd, n, usize;
        static caddr_t memmap;
-       struct utmp *utmp, *up;
+       struct utmp *utmp, *up, utmp_rw;
        int i;
        char path[MAXPATHLEN];

@@ -524,7 +524,9 @@
        }
        utmp = (struct utmp *)memmap;
        for (i = 0; i < n; i++) {
-               up = &utmp[i];
+               memcpy(utmp_rw, utmp[i], sizeof(utmp_rw));
+               up = &utmp_rw;
+               rindex(up->ut_line,'/') ++;
                if (*up->ut_name == '\0' || skipcrtltty(up) ||
                    !ttystat(up->ut_line, UT_LINESIZE) ||
                    !checkttylist(up) || !checkuserlist(up) || ttyislinked(up))
srv6#      

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 13:45:51
Гость

Код: Выделить всё

-               memcpy(utmp_rw, utmp[i], sizeof(utmp_rw));
+               memcpy(&utmp_rw, &utmp[i], sizeof(utmp_rw));

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 13:48:22
Alex Keda

Код: Выделить всё

srv6# make
===>  Configuring for termlog-2.5_1
===>  Building for termlog-2.5_1
cc -O2 -pipe -fno-strict-aliasing  -I. -Wall -Wbad-function-cast -Wcast-align -Wcast-qual -Wchar-subscripts -Winline -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wredundant-decls -Wshadow -Wstrict-prototypes -Wwrite-strings -g -DNDEBUG -c termlog.c
termlog.c:68: warning: initialization discards qualifiers from pointer target type
termlog.c: In function 'processutmp':
termlog.c:529: error: lvalue required as increment operand
*** Error code 1

Stop in /tmp/home/usr_moved/ports/security/termlog/work/termlog-2.5.
*** Error code 1

Stop in /home/usr_moved/ports/security/termlog.
srv6#   

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 13:49:27
Alex Keda
529 это строка

Код: Выделить всё

rindex(up->ut_line,'/') ++;

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 13:52:27
Гость

Код: Выделить всё

-             rindex(up->ut_line,'/') ++;
+             up->ut_line[rindex(up->ut_line,'/')-up->ut_line] = '_';

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 14:02:54
Alex Keda
скомпилилось, но не фурычит =))

Код: Выделить всё

srv6# truss /usr/local/bin/termlog -C /var/log/termlog/2010/07/28 -f -n 30
__sysctl(0xbfbfe4d4,0x2,0xbfbfe4dc,0xbfbfe4e0,0x0,0x0) = 0 (0x0)
mmap(0x0,328,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 671645696 (0x28088000)
munmap(0x28088000,328)                           = 0 (0x0)
__sysctl(0xbfbfe538,0x2,0x2807ee3c,0xbfbfe540,0x0,0x0) = 0 (0x0)
mmap(0x0,32768,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 671645696 (0x28088000)
issetugid(0x280778cb,0xbfbfe9fc,0x104,0x0,0x0,0x0) = 0 (0x0)
open("/etc/libmap.conf",O_RDONLY,0666)           ERR#2 'No such file or directory'
open("/var/run/ld-elf.so.hints",O_RDONLY,00)     = 2 (0x2)
read(2,"Ehnt\^A\0\0\0\M^@\0\0\0\M-s\0\0"...,128) = 128 (0x80)
lseek(2,0x80,SEEK_SET)                           = 128 (0x80)
read(2,"/lib:/usr/lib:/usr/lib/compat:/u"...,243) = 243 (0xf3)
close(2)                                         = 0 (0x0)
access("/lib/libmd.so.5",0)                      = 0 (0x0)
open("/lib/libmd.so.5",O_RDONLY,00)              = 2 (0x2)
fstat(2,{ mode=-r--r--r-- ,inode=1483841,size=61600,blksize=16384 }) = 0 (0x0)
pread(0x2,0x2807dd80,0x1000,0x0,0x0,0x0)         = 4096 (0x1000)
mmap(0x0,65536,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 671678464 (0x28090000)
mmap(0x28090000,61440,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE,2,0x0) = 671678464 (0x28090000)
mmap(0x2809f000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED,2,0xe000) = 671739904 (0x2809f000)
close(2)                                         = 0 (0x0)
access("/lib/libthr.so.3",0)                     = 0 (0x0)
open("/lib/libthr.so.3",O_RDONLY,027757762454)   = 2 (0x2)
fstat(2,{ mode=-r--r--r-- ,inode=1483846,size=76540,blksize=16384 }) = 0 (0x0)
pread(0x2,0x2807dd80,0x1000,0x0,0x0,0x0)         = 4096 (0x1000)
mmap(0x0,86016,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 671744000 (0x280a0000)
mmap(0x280a0000,73728,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE,2,0x0) = 671744000 (0x280a0000)
mmap(0x280b2000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED,2,0x11000) = 671817728 (0x280b2000)
mprotect(0x280b3000,8192,PROT_READ|PROT_WRITE)   = 0 (0x0)
close(2)                                         = 0 (0x0)
access("/lib/libc.so.7",0)                       = 0 (0x0)
open("/lib/libc.so.7",O_RDONLY,027757762454)     = 2 (0x2)
fstat(2,{ mode=-r--r--r-- ,inode=1483837,size=1142616,blksize=16384 }) = 0 (0x0)
pread(0x2,0x2807dd80,0x1000,0x0,0x0,0x2000)      = 4096 (0x1000)
mmap(0x0,1150976,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 671830016 (0x280b5000)
mmap(0x280b5000,1028096,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE,2,0x0) = 671830016 (0x280b5000)
mmap(0x281b0000,24576,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED,2,0xfb000) = 672858112 (0x281b0000)
mprotect(0x281b6000,98304,PROT_READ|PROT_WRITE)  = 0 (0x0)
close(2)                                         = 0 (0x0)
sysarch(0xa,0xbfbfe5a0,0x2804e37b,0x2807d2f8,0x28060dd9,0x2807d2f8) = 0 (0x0)
mmap(0x0,592,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 672980992 (0x281ce000)
munmap(0x281ce000,592)                           = 0 (0x0)
mmap(0x0,824,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 672980992 (0x281ce000)
munmap(0x281ce000,824)                           = 0 (0x0)
mmap(0x0,4064,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 672980992 (0x281ce000)
munmap(0x281ce000,4064)                          = 0 (0x0)
mmap(0x0,21896,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 672980992 (0x281ce000)
munmap(0x281ce000,21896)                         = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
__sysctl(0xbfbfe554,0x2,0x281b76a0,0xbfbfe55c,0x0,0x0) = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
getpid()                                         = 85174 (0x14cb6)
__sysctl(0xbfbfe53c,0x2,0x280b4cd0,0xbfbfe548,0x0,0x0) = 0 (0x0)
__sysctl(0xbfbfe4d4,0x2,0xbfbfe46c,0xbfbfe4dc,0x280b1503,0xd) = 0 (0x0)
__sysctl(0xbfbfe46c,0x3,0x280b3fc8,0xbfbfe548,0x0,0x0) = 0 (0x0)
__sysctl(0xbfbfe4d8,0x2,0x281bc7c0,0xbfbfe4e0,0x0,0x0) = 0 (0x0)
__sysctl(0xbfbfe014,0x2,0x281bc360,0xbfbfe01c,0x0,0x0) = 0 (0x0)
__sysctl(0xbfbfdf34,0x2,0xbfbfdecc,0xbfbfdf3c,0x281a7cf4,0xc) = 0 (0x0)
__sysctl(0xbfbfdecc,0x2,0x281bc458,0xbfbfdf78,0x0,0x0) = 0 (0x0)
readlink("/etc/malloc.conf",0xbfbfe023,1024)     ERR#2 'No such file or directory'
issetugid(0x281a6a09,0xbfbfe023,0x400,0xbfbfe01c,0x0,0x0) = 0 (0x0)
break(0x8100000)                                 = 0 (0x0)
__sysctl(0xbfbfe2a4,0x2,0xbfbfe2ac,0xbfbfe2b0,0x0,0x0) = 0 (0x0)
mmap(0x0,1048576,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 672980992 (0x281ce000)
mmap(0x282ce000,204800,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 674029568 (0x282ce000)
munmap(0x281ce000,204800)                        = 0 (0x0)
thr_self(0x28201140,0x280b3fc8,0xbfbfe548,0x0,0x0,0x0) = 0 (0x0)
mmap(0xbf9ff000,4096,PROT_NONE,MAP_ANON,-1,0x0)  = -1080037376 (0xbf9ff000)
thr_set_name(0x18a42,0x280b154b,0x0,0x1000,0xffffffff,0x0) = 0 (0x0)
rtprio_thread(0x0,0x18a42,0xbfbfe4dc,0x2808a400,0x328,0x2808c28c) = 0 (0x0)
sysarch(0xa,0xbfbfe4f0,0xbfbfe544,0x2808c28c,0x280fff49,0x280b2c34) = 0 (0x0)
sigprocmask(SIG_SETMASK,SIGHUP|SIGINT|SIGQUIT|SIGILL|SIGABRT|SIGEMT|SIGFPE|SIGKILL|SIGBUS|SIGSEGV|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigaction(32,{ 0x280aa620 SA_RESTART|SA_SIGINFO ss_t },0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
chdir("/var/log/termlog/2010/07/28")             = 0 (0x0)
modfind(0x804b43b,0xbfbfeb88,0x804b426,0xbfbfeb3c,0xbfbfeb88,0xbfbfeb88) = 470 (0x1d6)
ioctl(0,TIOCGETA,0xbfbfea90)                     = 0 (0x0)
ioctl(0,FIODGNAME,0xbfbfeab8)                    = 0 (0x0)
socket(PF_LOCAL,SOCK_DGRAM,0)                    = 2 (0x2)
fcntl(2,F_SETFD,FD_CLOEXEC)                      = 0 (0x0)
connect(2,{ AF_UNIX "/var/run/logpriv" },106)    = 0 (0x0)
sigaction(SIGUSR1,{ 0x8049840 SA_RESTART ss_t },{ SIG_DFL 0x0 ss_t }) = 0 (0x0)
_umtx_op(0xbfbfea2c,0x3,0x1,0x0,0x0,0x2807d6a0)  = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGABRT|SIGEMT|SIGKILL|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGABRT|SIGEMT|SIGKILL|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
mmap(0xbf8fe000,1052672,PROT_READ|PROT_WRITE,MAP_STACK,-1,0x0) = -1081090048 (0xbf8fe000)
mprotect(0xbf8fe000,4096,PROT_NONE)              = 0 (0x0)
thr_new(0xbfbfeaa0,0x34,0x2807d2f8,0x2808e030,0x2808a000,0xbfbfeaa4) = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGABRT|SIGEMT|SIGKILL|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
_umtx_op(0x280b3900,0xe,0x0,0x0,0x0,0x2808e0a0)  = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
mmap(0xbf7fd000,1052672,PROT_READ|PROT_WRITE,MAP_STACK,-1,0x0) = -1082142720 (0xbf7fd000)
mprotect(0xbf7fd000,4096,PROT_NONE)              = 0 (0x0)
open("//var/run/utmp",O_RDONLY,00)               = 3 (0x3)
thr_new(0xbfbfeaa0,0x34,0x2807d2f8,0x2808e030,0x2808a000,0xbfbfeaa4) = 0 (0x0)
fstat(3,{ mode=-rw-r--r-- ,inode=23596,size=12144,blksize=16384 }) = 0 (0x0)
sigprocmask(SIG_BLOCK,0x0,0x0)                   = 0 (0x0)
open("//var/run/utmp",O_RDONLY,00)               = 4 (0x4)
mmap(0x0,12144,PROT_READ,MAP_SHARED,4,0x0)       = 672980992 (0x281ce000)
SIGNAL 11 (SIGSEGV)
process exit, rval = 0
srv6#  

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 14:03:08
hizel
1. я таки не понял решили вы или нет
2. код ужасен
3. откройте для себя http://gist.github.com/

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 14:05:22
Alex Keda
bt в gdb на последней строке пишет

Код: Выделить всё

#596 0x00000000 in ?? ()
Cannot access memory at address 0xbf9ff000
до этого - ничего

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 14:06:07
Alex Keda
нет. до патча оно работало если создать субдиректорию
теперь даже не пытается файл создать =)
чё-то отломалось )))

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 14:10:55
Гость
+ up->ut_line[rindex(up->ut_line,'/')-up->ut_line] = '_';
закомментируй ее

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 14:15:33
hizel
Лис теперь просмотри всю ветку и подумай как человек со стороны допетрит в каком состоянии твои исходники на текущий момент или сколько на это уме понадобится времени :evil:

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 14:15:43
Alex Keda

Код: Выделить всё

srv6# truss /usr/local/bin/termlog -C /var/log/termlog/2010/07/28 -f -n 30
__sysctl(0xbfbfe4d4,0x2,0xbfbfe4dc,0xbfbfe4e0,0x0,0x0) = 0 (0x0)
mmap(0x0,328,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 671645696 (0x28088000)
munmap(0x28088000,328)                           = 0 (0x0)
__sysctl(0xbfbfe538,0x2,0x2807ee3c,0xbfbfe540,0x0,0x0) = 0 (0x0)
mmap(0x0,32768,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 671645696 (0x28088000)
issetugid(0x280778cb,0xbfbfe9fc,0x104,0x0,0x0,0x0) = 0 (0x0)
open("/etc/libmap.conf",O_RDONLY,0666)           ERR#2 'No such file or directory'
open("/var/run/ld-elf.so.hints",O_RDONLY,00)     = 2 (0x2)
read(2,"Ehnt\^A\0\0\0\M^@\0\0\0\M-s\0\0"...,128) = 128 (0x80)
lseek(2,0x80,SEEK_SET)                           = 128 (0x80)
read(2,"/lib:/usr/lib:/usr/lib/compat:/u"...,243) = 243 (0xf3)
close(2)                                         = 0 (0x0)
access("/lib/libmd.so.5",0)                      = 0 (0x0)
open("/lib/libmd.so.5",O_RDONLY,00)              = 2 (0x2)
fstat(2,{ mode=-r--r--r-- ,inode=1483841,size=61600,blksize=16384 }) = 0 (0x0)
pread(0x2,0x2807dd80,0x1000,0x0,0x0,0x0)         = 4096 (0x1000)
mmap(0x0,65536,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 671678464 (0x28090000)
mmap(0x28090000,61440,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE,2,0x0) = 671678464 (0x28090000)
mmap(0x2809f000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED,2,0xe000) = 671739904 (0x2809f000)
close(2)                                         = 0 (0x0)
access("/lib/libthr.so.3",0)                     = 0 (0x0)
open("/lib/libthr.so.3",O_RDONLY,027757762454)   = 2 (0x2)
fstat(2,{ mode=-r--r--r-- ,inode=1483846,size=76540,blksize=16384 }) = 0 (0x0)
pread(0x2,0x2807dd80,0x1000,0x0,0x0,0x0)         = 4096 (0x1000)
mmap(0x0,86016,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 671744000 (0x280a0000)
mmap(0x280a0000,73728,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE,2,0x0) = 671744000 (0x280a0000)
mmap(0x280b2000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED,2,0x11000) = 671817728 (0x280b2000)
mprotect(0x280b3000,8192,PROT_READ|PROT_WRITE)   = 0 (0x0)
close(2)                                         = 0 (0x0)
access("/lib/libc.so.7",0)                       = 0 (0x0)
open("/lib/libc.so.7",O_RDONLY,027757762454)     = 2 (0x2)
fstat(2,{ mode=-r--r--r-- ,inode=1483837,size=1142616,blksize=16384 }) = 0 (0x0)
pread(0x2,0x2807dd80,0x1000,0x0,0x0,0x2000)      = 4096 (0x1000)
mmap(0x0,1150976,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 671830016 (0x280b5000)
mmap(0x280b5000,1028096,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE,2,0x0) = 671830016 (0x280b5000)
mmap(0x281b0000,24576,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED,2,0xfb000) = 672858112 (0x281b0000)
mprotect(0x281b6000,98304,PROT_READ|PROT_WRITE)  = 0 (0x0)
close(2)                                         = 0 (0x0)
sysarch(0xa,0xbfbfe5a0,0x2804e37b,0x2807d2f8,0x28060dd9,0x2807d2f8) = 0 (0x0)
mmap(0x0,592,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 672980992 (0x281ce000)
munmap(0x281ce000,592)                           = 0 (0x0)
mmap(0x0,824,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 672980992 (0x281ce000)
munmap(0x281ce000,824)                           = 0 (0x0)
mmap(0x0,4064,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 672980992 (0x281ce000)
munmap(0x281ce000,4064)                          = 0 (0x0)
mmap(0x0,21896,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 672980992 (0x281ce000)
munmap(0x281ce000,21896)                         = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
__sysctl(0xbfbfe554,0x2,0x281b76a0,0xbfbfe55c,0x0,0x0) = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
getpid()                                         = 87229 (0x154bd)
__sysctl(0xbfbfe53c,0x2,0x280b4cd0,0xbfbfe548,0x0,0x0) = 0 (0x0)
__sysctl(0xbfbfe4d4,0x2,0xbfbfe46c,0xbfbfe4dc,0x280b1503,0xd) = 0 (0x0)
__sysctl(0xbfbfe46c,0x3,0x280b3fc8,0xbfbfe548,0x0,0x0) = 0 (0x0)
__sysctl(0xbfbfe4d8,0x2,0x281bc7c0,0xbfbfe4e0,0x0,0x0) = 0 (0x0)
__sysctl(0xbfbfe014,0x2,0x281bc360,0xbfbfe01c,0x0,0x0) = 0 (0x0)
__sysctl(0xbfbfdf34,0x2,0xbfbfdecc,0xbfbfdf3c,0x281a7cf4,0xc) = 0 (0x0)
__sysctl(0xbfbfdecc,0x2,0x281bc458,0xbfbfdf78,0x0,0x0) = 0 (0x0)
readlink("/etc/malloc.conf",0xbfbfe023,1024)     ERR#2 'No such file or directory'
issetugid(0x281a6a09,0xbfbfe023,0x400,0xbfbfe01c,0x0,0x0) = 0 (0x0)
break(0x8100000)                                 = 0 (0x0)
__sysctl(0xbfbfe2a4,0x2,0xbfbfe2ac,0xbfbfe2b0,0x0,0x0) = 0 (0x0)
mmap(0x0,1048576,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 672980992 (0x281ce000)
mmap(0x282ce000,204800,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 674029568 (0x282ce000)
munmap(0x281ce000,204800)                        = 0 (0x0)
thr_self(0x28201140,0x280b3fc8,0xbfbfe548,0x0,0x0,0x0) = 0 (0x0)
mmap(0xbf9ff000,4096,PROT_NONE,MAP_ANON,-1,0x0)  = -1080037376 (0xbf9ff000)
thr_set_name(0x18a64,0x280b154b,0x0,0x1000,0xffffffff,0x0) = 0 (0x0)
rtprio_thread(0x0,0x18a64,0xbfbfe4dc,0x2808a400,0x328,0x2808c28c) = 0 (0x0)
sysarch(0xa,0xbfbfe4f0,0xbfbfe544,0x2808c28c,0x280fff49,0x280b2c34) = 0 (0x0)
sigprocmask(SIG_SETMASK,SIGHUP|SIGINT|SIGQUIT|SIGILL|SIGABRT|SIGEMT|SIGFPE|SIGKILL|SIGBUS|SIGSEGV|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigaction(32,{ 0x280aa620 SA_RESTART|SA_SIGINFO ss_t },0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
chdir("/var/log/termlog/2010/07/28")             = 0 (0x0)
modfind(0x804b41b,0xbfbfeb88,0x804b406,0xbfbfeb3c,0xbfbfeb88,0xbfbfeb88) = 470 (0x1d6)
ioctl(0,TIOCGETA,0xbfbfea90)                     = 0 (0x0)
ioctl(0,FIODGNAME,0xbfbfeab8)                    = 0 (0x0)
socket(PF_LOCAL,SOCK_DGRAM,0)                    = 2 (0x2)
fcntl(2,F_SETFD,FD_CLOEXEC)                      = 0 (0x0)
connect(2,{ AF_UNIX "/var/run/logpriv" },106)    = 0 (0x0)
sigaction(SIGUSR1,{ 0x8049840 SA_RESTART ss_t },{ SIG_DFL 0x0 ss_t }) = 0 (0x0)
_umtx_op(0xbfbfea2c,0x3,0x1,0x0,0x0,0x2807d6a0)  = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGABRT|SIGEMT|SIGKILL|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGABRT|SIGEMT|SIGKILL|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
mmap(0xbf8fe000,1052672,PROT_READ|PROT_WRITE,MAP_STACK,-1,0x0) = -1081090048 (0xbf8fe000)
mprotect(0xbf8fe000,4096,PROT_NONE)              = 0 (0x0)
thr_new(0xbfbfeaa0,0x34,0x2807d2f8,0x2808e030,0x2808a000,0xbfbfeaa4) = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGABRT|SIGEMT|SIGKILL|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
open("//var/run/utmp",O_RDONLY,00)               = 3 (0x3)
mmap(0xbf7fd000,1052672,PROT_READ|PROT_WRITE,MAP_STACK,-1,0x0) = -1082142720 (0xbf7fd000)
fstat(3,{ mode=-rw-r--r-- ,inode=23596,size=12144,blksize=16384 }) = 0 (0x0)
mprotect(0xbf7fd000,4096,PROT_NONE)              = 0 (0x0)
thr_new(0xbfbfeaa0,0x34,0x2807d2f8,0x2808e030,0x2808a000,0xbfbfeaa4) = 0 (0x0)
open("//var/run/utmp",O_RDONLY,00)               = 4 (0x4)
mmap(0x0,12144,PROT_READ,MAP_SHARED,4,0x0)       = 672980992 (0x281ce000)
sigprocmask(SIG_BLOCK,0x0,0x0)                   = 0 (0x0)
stat("//dev/pts/0",{ mode=crw--w---- ,inode=113,size=0,blksize=4096 }) = 0 (0x0)
mmap(0x0,1048576,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 674234368 (0x28300000)
stat("//dev/pts/0",{ mode=crw--w---- ,inode=113,size=0,blksize=4096 }) = 0 (0x0)
stat("/dev/snp0",{ mode=crw------- ,inode=107,size=0,blksize=4096 }) = 0 (0x0)
open("/dev/snp0",O_RDONLY,00)                    = 5 (0x5)
open("//dev/pts/0",O_NONBLOCK,00)                = 6 (0x6)
ioctl(5,SNPSTTY,0xbf9fe664)                      = 0 (0x0)
close(6)                                         = 0 (0x0)
clock_gettime(13,{1280315721.000000000 })        = 0 (0x0)
open("h10282_pts/0_1280315721.log",O_WRONLY|O_CREAT|O_TRUNC,0666) ERR#2 'No such file or directory'
stat("//dev/pts/2",{ mode=crw--w---- ,inode=115,size=0,blksize=4096 }) = 0 (0x0)
stat("//dev/pts/2",{ mode=crw--w---- ,inode=115,size=0,blksize=4096 }) = 0 (0x0)
stat("/dev/snp0",{ mode=crw------- ,inode=107,size=0,blksize=4096 }) = 0 (0x0)
open("/dev/snp0",O_RDONLY,00)                    = 6 (0x6)
open("//dev/pts/2",O_NONBLOCK,00)                = 7 (0x7)
ioctl(6,SNPSTTY,0xbf9fe664)                      = 0 (0x0)
close(7)                                         = 0 (0x0)
clock_gettime(13,{1280315721.000000000 })        = 0 (0x0)
open("lissyara_pts/2_1280315721.log",O_WRONLY|O_CREAT|O_TRUNC,0666) ERR#2 'No such file or directory'
stat("//dev/pts/3",{ mode=crw--w---- ,inode=117,size=0,blksize=4096 }) = 0 (0x0)
stat("//dev/pts/3",{ mode=crw--w---- ,inode=117,size=0,blksize=4096 }) = 0 (0x0)
stat("/dev/snp0",{ mode=crw------- ,inode=107,size=0,blksize=4096 }) = 0 (0x0)
open("/dev/snp0",O_RDONLY,00)                    = 7 (0x7)
open("//dev/pts/3",O_NONBLOCK,00)                = 8 (0x8)
ioctl(7,SNPSTTY,0xbf9fe664)                      = 0 (0x0)
close(8)                                         = 0 (0x0)
clock_gettime(13,{1280315721.000000000 })        = 0 (0x0)
open("lissyara_pts/3_1280315721.log",O_WRONLY|O_CREAT|O_TRUNC,0666) ERR#2 'No such file or directory'
nanosleep({0.500000000 })                        = 0 (0x0)
fstat(3,{ mode=-rw-r--r-- ,inode=23596,size=12144,blksize=16384 }) = 0 (0x0)
nanosleep({0.500000000 })                        = 0 (0x0)
select(8,{5 6 7},0x0,0x0,{1.000000 })            = 1 (0x1)
ioctl(6,FIONREAD,0xbf8fbf4c)                     = 0 (0x0)
read(6,"ioctl(6,SNPSTTY,0xbf9fe664)\t\t"...,992) = 992 (0x3e0)
SIGNAL 11 (SIGSEGV)
process exit, rval = 0
srv6#     

Re: объясните дураку где что подправить =(

Добавлено: 2010-07-28 14:21:37
Гость
что то я туплю
удаляй все изменения
не в том месте копаем

fileops.c
функция snp_setup

Код: Выделить всё

+       logname[rindex(logname,'/')-logname] = 'D';
         sm->fp= fopen(logname, "w");
вместо D можешь поставить любой удобный тебе символ который будет менять '/'