Demo Discussion
Forum Config Examples Contributions Vulnerabilities
  Discussion forum about ELOG, Page 444 of 808  Not logged in ELOG logo
    icon2.gif   Re: deadc0de, posted by Niklas on Fri Nov 14 08:48:05 2008 

Niklas wrote:

Stefan Ritt wrote:

Niklas wrote:

my ELOG sometimes dies with "deadc0de", do I have too large ELOG config or logbook? Or is it simply a bug?

What can I do to solve this problem? "ulimit"? Or some trace output from elog?

 This seems an internal memory allocation problem. Can you reproduce the error? Can you reproduce it with the minimal configuration file coming with the distribution? If you know how to run a program inside the debugger, you can send me a stack trace when the problem occurs and I can check it.

I can produce the problem, but it is related to the information in the logbook which I cannot share...

Configuration:

 


[global]
port = 8000
Main Tab = Home
Password file = elogpasswd.txt
Admin user = eniklas
Self register = 0
Welcome Title = <h3>ENIKLAS ELOG<h3>
Relative redirection = 1
Entries per page = 1000
Display mode = summary
Suppress Email to users = 1
Summary lines = 0



[General]
Theme = default
Attributes = Type, Subject
Options Type = Configuration, Information, Documents
Extendable Options = Type
Required Attributes = Type
Page Title = ELOG - $subject
Reverse sort = 0
Quick filter = Date, Type


[Testing]
Theme = default
Attributes = Type, Subject
Options Type = Configuration, Information, Documents
Extendable Options = Type
Required Attributes = Type
Page Title = ELOG - $subject
Reverse sort = 0
Quick filter = Date, Type


 

 

I know nothing about gdb. Here are my stumbling attempts of using it, please tell me how to use gdb:

niklas@bba:~$ gdb -d /home/eniklas/Project/Niho/elog/bin/elog-2.7.5 --args  /home/eniklas/Project/Niho/elog/bin/installation/usr/local/sbin/elogd  -c /home/eniklas/Project/Niho/elog/bin/installation/usr/local/elog/elogd.cfg
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) run
Starting program: /home/eniklas/Project/Niho/elog/bin/installation/usr/local/sbin/elogd -c /home/eniklas/Project/Niho/elog/bin/installation/usr/local/elog/elogd.cfg
elogd 2.7.5 built Oct 22 2008, 13:37:35 revision 2130
FCKedit detected
Indexing logbooks ... done
Server listening on port 8000 ...
elogd: src/elogd.c:714: xfree: Assertion `*((unsigned int *) (temp + old_size)) == 0xdeadc0de' failed.

Program received signal SIGABRT, Aborted.
0xffffe410 in __kernel_vsyscall ()
(gdb) bt
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7e3e875 in raise () from /lib/tls/i686/cmov/libc.so.6
#2  0xb7e40201 in abort () from /lib/tls/i686/cmov/libc.so.6
#3  0xb7e37b6e in __assert_fail () from /lib/tls/i686/cmov/libc.so.6
#4  0x0804b0b6 in xfree (pointer=0x9176298) at src/elogd.c:714
#5  0x08058903 in el_submit (lbs=0x90f8090, message_id=5, bedit=1, date=0xbfbe054c "<keep>", attr_name=0x824e1e0,
    attr_value=0xbfbb2db8, n_attr=2,
    text=0x8211140 "<table height=\"694\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"674\" style=\"margin-left: 72pt; border-collapse: collapse;\" class=\"MsoNormalTable\">\r\n    <tbody>\r\n        <tr style=\"\">\r\n          "...,
    in_reply_to=0xbfbe04ac "<keep>", reply_to=0xbfbdf678 "<keep>", encoding=0xbfbe04fc "HTML", afilename=0xbfbd77a8,
    mark_original=1, locked_by=0x0) at src/elogd.c:4819
#6  0x0809f721 in submit_elog (lbs=0x90f8090) at src/elogd.c:21934
#7  0x080b04e9 in interprete (lbook=0x90f8090 "Testing", path=0x80cdc60 "") at src/elogd.c:25816
#8  0x080b2a53 in decode_post (logbook=0xbfc0a1a0 "Testing", lbs=0x90f8090, string=0x9166614 "",
    boundary=0xbfc0a3a0 '-' <repeats 27 times>, "196291262324084", length=134670) at src/elogd.c:26382
#9  0x080b54fa in process_http_request (
    request=0x9145548 "POST /Testing/ HTTP/1.1\r\nHost: bba.eld.ki.sw.home.se:8000\r\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4\r\nAccept: text/html,application/xht"..., i_conn=0)
    at src/elogd.c:26936
#10 0x080b7f0f in server_loop () at src/elogd.c:27746
#11 0x080ba36b in main (argc=3, argv=0xbfc0b924) at src/elogd.c:28797
(gdb) bt 100
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7e3e875 in raise () from /lib/tls/i686/cmov/libc.so.6
#2  0xb7e40201 in abort () from /lib/tls/i686/cmov/libc.so.6
#3  0xb7e37b6e in __assert_fail () from /lib/tls/i686/cmov/libc.so.6
#4  0x0804b0b6 in xfree (pointer=0x9176298) at src/elogd.c:714
#5  0x08058903 in el_submit (lbs=0x90f8090, message_id=5, bedit=1, date=0xbfbe054c "<keep>", attr_name=0x824e1e0,
    attr_value=0xbfbb2db8, n_attr=2,
    text=0x8211140 "<table height=\"694\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"674\" style=\"margin-left: 72pt; border-collapse: collapse;\" class=\"MsoNormalTable\">\r\n    <tbody>\r\n        <tr style=\"\">\r\n          "...,
    in_reply_to=0xbfbe04ac "<keep>", reply_to=0xbfbdf678 "<keep>", encoding=0xbfbe04fc "HTML", afilename=0xbfbd77a8,
    mark_original=1, locked_by=0x0) at src/elogd.c:4819
#6  0x0809f721 in submit_elog (lbs=0x90f8090) at src/elogd.c:21934
#7  0x080b04e9 in interprete (lbook=0x90f8090 "Testing", path=0x80cdc60 "") at src/elogd.c:25816
#8  0x080b2a53 in decode_post (logbook=0xbfc0a1a0 "Testing", lbs=0x90f8090, string=0x9166614 "",
    boundary=0xbfc0a3a0 '-' <repeats 27 times>, "196291262324084", length=134670) at src/elogd.c:26382
#9  0x080b54fa in process_http_request (
    request=0x9145548 "POST /Testing/ HTTP/1.1\r\nHost: bba.eld.ki.sw.home.se:8000\r\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4\r\nAccept: text/html,application/xht"..., i_conn=0)
    at src/elogd.c:26936
#10 0x080b7f0f in server_loop () at src/elogd.c:27746
#11 0x080ba36b in main (argc=3, argv=0xbfc0b924) at src/elogd.c:28797
(gdb) f 4
#4  0x0804b0b6 in xfree (pointer=0x9176298) at src/elogd.c:714
714        assert(*((unsigned int *) (temp + old_size)) == 0xdeadc0de);
(gdb) info 4
Undefined info command: "4".  Try "help info".
(gdb) up
#5  0x08058903 in el_submit (lbs=0x90f8090, message_id=5, bedit=1, date=0xbfbe054c "<keep>", attr_name=0x824e1e0,
    attr_value=0xbfbb2db8, n_attr=2,
    text=0x8211140 "<table height=\"694\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"674\" style=\"margin-left: 72pt; border-collapse: collapse;\" class=\"MsoNormalTable\">\r\n    <tbody>\r\n        <tr style=\"\">\r\n          "...,
    in_reply_to=0xbfbe04ac "<keep>", reply_to=0xbfbdf678 "<keep>", encoding=0xbfbe04fc "HTML", afilename=0xbfbd77a8,
    mark_original=1, locked_by=0x0) at src/elogd.c:4819
4819       xfree(message);
(gdb) info 4
Undefined info command: "4".  Try "help info".
(gdb) info f
Stack level 5, frame at 0xbfb623c0:
 eip = 0x8058903 in el_submit (src/elogd.c:4819); saved eip 0x809f721
 called by frame at 0xbfbe05b0, caller of frame at 0xbfb135f0
 source language c.
 Arglist at 0xbfb135f8, args: lbs=0x90f8090, message_id=5, bedit=1, date=0xbfbe054c "<keep>", attr_name=0x824e1e0,
    attr_value=0xbfbb2db8, n_attr=2,
    text=0x8211140 "<table height=\"694\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"674\" style=\"margin-left: 72pt; border-collapse: collapse;\" class=\"MsoNormalTable\">\r\n    <tbody>\r\n        <tr style=\"\">\r\n          "...,
    in_reply_to=0xbfbe04ac "<keep>", reply_to=0xbfbdf678 "<keep>", encoding=0xbfbe04fc "HTML", afilename=0xbfbd77a8,
    mark_original=1, locked_by=0x0
 Locals at 0xbfb135f8, Previous frame's sp is 0xbfb623c0
 Saved registers:
  ebx at 0xbfb623b0, esi at 0xbfb623b4, edi at 0xbfb623b8, eip at 0xbfb623bc
(gdb) bt
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7e3e875 in raise () from /lib/tls/i686/cmov/libc.so.6
#2  0xb7e40201 in abort () from /lib/tls/i686/cmov/libc.so.6
#3  0xb7e37b6e in __assert_fail () from /lib/tls/i686/cmov/libc.so.6
#4  0x0804b0b6 in xfree (pointer=0x9176298) at src/elogd.c:714
#5  0x08058903 in el_submit (lbs=0x90f8090, message_id=5, bedit=1, date=0xbfbe054c "<keep>", attr_name=0x824e1e0,
    attr_value=0xbfbb2db8, n_attr=2,
    text=0x8211140 "<table height=\"694\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"674\" style=\"margin-left: 72pt; border-collapse: collapse;\" class=\"MsoNormalTable\">\r\n    <tbody>\r\n        <tr style=\"\">\r\n          "...,
    in_reply_to=0xbfbe04ac "<keep>", reply_to=0xbfbdf678 "<keep>", encoding=0xbfbe04fc "HTML", afilename=0xbfbd77a8,
    mark_original=1, locked_by=0x0) at src/elogd.c:4819
#6  0x0809f721 in submit_elog (lbs=0x90f8090) at src/elogd.c:21934
#7  0x080b04e9 in interprete (lbook=0x90f8090 "Testing", path=0x80cdc60 "") at src/elogd.c:25816
#8  0x080b2a53 in decode_post (logbook=0xbfc0a1a0 "Testing", lbs=0x90f8090, string=0x9166614 "",
    boundary=0xbfc0a3a0 '-' <repeats 27 times>, "196291262324084", length=134670) at src/elogd.c:26382
#9  0x080b54fa in process_http_request (
    request=0x9145548 "POST /Testing/ HTTP/1.1\r\nHost: bba.eld.ki.sw.home.se:8000\r\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4\r\nAccept: text/html,application/xht"..., i_conn=0)
    at src/elogd.c:26936
#10 0x080b7f0f in server_loop () at src/elogd.c:27746
#11 0x080ba36b in main (argc=3, argv=0xbfc0b924) at src/elogd.c:28797
(gdb) info f 4
Stack frame at 0xbfb135f0:
 eip = 0x804b0b6 in xfree (src/elogd.c:714); saved eip 0x8058903
 called by frame at 0xbfb623c0, caller of frame at 0xbfb135c0
 source language c.
 Arglist at 0xbfb135bc, args: pointer=0x9176298
 Locals at 0xbfb135bc, Previous frame's sp is 0xbfb135f0
 Saved registers:
  eip at 0xbfb135ec
(gdb) info f 5
Stack frame at 0xbfb623c0:
 eip = 0x8058903 in el_submit (src/elogd.c:4819); saved eip 0x809f721
 called by frame at 0xbfbe05b0, caller of frame at 0xbfb135f0
 source language c.
 Arglist at 0xbfb135f8, args: lbs=0x90f8090, message_id=5, bedit=1, date=0xbfbe054c "<keep>", attr_name=0x824e1e0,
    attr_value=0xbfbb2db8, n_attr=2,
    text=0x8211140 "<table height=\"694\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"674\" style=\"margin-left: 72pt; border-collapse: collapse;\" class=\"MsoNormalTable\">\r\n    <tbody>\r\n        <tr style=\"\">\r\n          "...,
    in_reply_to=0xbfbe04ac "<keep>", reply_to=0xbfbdf678 "<keep>", encoding=0xbfbe04fc "HTML", afilename=0xbfbd77a8,
    mark_original=1, locked_by=0x0
 Locals at 0xbfb135f8, Previous frame's sp is 0xbfb623c0
 Saved registers:
  ebx at 0xbfb623b0, esi at 0xbfb623b4, edi at 0xbfb623b8, eip at 0xbfb623bc
(gdb)

 

 

The above "deadc0de" came from when I submitted an entry.

 

Where is one (note that it is another elogd version), I search all logbook for "pure .* ring" in subject in "Mode: Raw".

root@bba:/var/log# gdb --args /usr/sbin/elogd -f /var/run/elogd.pid -c /etc/elog.conf
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) run
Starting program: /usr/sbin/elogd -f /var/run/elogd.pid -c /etc/elog.conf
elogd 2.7.4 built Aug  1 2008, 14:09:57 revision 2111
File "/var/run/elogd.pid" exists, using "/var/run/elogd.pid.8080" instead.
Refuse to overwrite existing file "/var/run/elogd.pid.8080".

Program exited with code 01.
(gdb) run
Starting program: /usr/sbin/elogd -f /var/run/elogd.pid -c /etc/elog.conf
elogd 2.7.4 built Aug  1 2008, 14:09:57 revision 2111
File "/var/run/elogd.pid" exists, using "/var/run/elogd.pid.8080" instead.
Falling back to default group "elog"
Falling back to default user "elog"
FCKedit detected
Falling back to default group "elog"
Falling back to default user "elog"
Cannot restore original GID/UID.
Cannot remove pidfile "/var/run/elogd.pid.8080"
; Permission denied
Indexing logbooks ... done
Server listening on port 8080 ...
elogd: src/elogd.c:686: xrealloc: Assertion `*((unsigned int *) (temp + old_size)) == 0xdeadc0de' failed.

Program received signal SIGABRT, Aborted.
0xffffe410 in __kernel_vsyscall ()
(gdb) bt
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7dd0875 in raise () from /lib/tls/i686/cmov/libc.so.6
#2  0xb7dd2201 in abort () from /lib/tls/i686/cmov/libc.so.6
#3  0xb7dc9b6e in __assert_fail () from /lib/tls/i686/cmov/libc.so.6
#4  0x0804afbe in xrealloc (pointer=0x92a6788, bytes=400000) at src/elogd.c:686
#5  0x0805b72e in rsputs (str=0x80ccbf2 "\r\n") at src/elogd.c:5585
#6  0x0809702b in show_elog_list (lbs=0x916ca00, past_n=0, last_n=0, page_n=-1, default_page=1, info=0x0) at src/elogd.c:20256
#7  0x080b0cdb in interprete (lbook=0xbfa960d0 "MB2.0_Nk_resiliency_without_ro", path=0xbfa70774 "") at src/elogd.c:25955
#8  0x080b0f11 in decode_get (logbook=0xbfa960d0 "MB2.0_Nk_resiliency_without_ro", string=0xbfa95b0f "?mode")
    at src/elogd.c:25995
#9  0x080b455e in process_http_request (
    request=0x912c8e0 "GET /MB2.0_Nk_resiliency_without_ro/?mode=Raw&reverse=0&all=1&npp=1000&Subject=pure+.*+ring",
    i_conn=0) at src/elogd.c:26752
#10 0x080b7244 in server_loop () at src/elogd.c:27584
#11 0x080b96a0 in main (argc=5, argv=0xbfa97854) at src/elogd.c:28635

icon5.gif   Quick filter in this forum, how to do "Text" search?, posted by Niklas on Fri Nov 21 09:12:31 2008 

Hi,

 

In this forum there is a quickfilter for text search. How do I get that into my elog?

When I add:

Quick filter = Date, Type, Text

into config file. I get:

Error: Attribute "Text" for quick filter not found

 

How do I add the quick filter text search box?

 

 

icon4.gif   Elogd crashes with: *** stack smashing detected ***, posted by Niklas on Fri Nov 21 10:53:09 2008 

Hi,

 

elogd sometimes crashes when there are large cookies. Or I'd guess it has something to do with the cookies, elogd crashed over and over again until I cleaned out cookies and authenticated sessions in firefox, then it stopped.

 

When I run "elogd -v" in gdb, and someone does:

 



GET / HTTP/1.1
Host: bba.eld.ki.sw.home.se:8080
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; sv-SE; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: urem=0; TWIKISID=ecaa5a39e8446a27ec5a34bcbb9d4bcb; unm=erirone; upwd=c3w5MTg1; ipplanNoAuth=yes; SMSESSION=oKvAAv/J9WoCo6KoVdEJkhxz44G10x7TXigffOaAjLrSf0iOFrRJq97oWl32/UBQMvFslc4BgxN/VCz2K7/IRaKdFgmU4CHq/1UUv2RvdHB2HUbYbph+JgKUpAG+kN6Cc4BTwRWhmemUNhONXMRJUCfa6Tq9/osID2AT1wBFInFNww2xVmJPDSi1oltxtT345RgdGQIZbHzG2HBi1GijpiaD+4FI3WLLRzJOj3Art92BLlVDWSaPxKSdSZgVNfRSw33SupUqwD0Is2pc+ufKn4cg0azyOTLNDFOl0U5RI7K9AVgYM0NBsfDoEyBfK8pYIZTMqFFQsnWAdwYz9M2RLDBKyfMXdfGb3rrnOdPH0zvvkkoT01pZObI7dSqHD7IXLbjN/8Pt0O4eo5/SSQ7uKRGpBip0pKe3mxZYI4hsJejYwVBFegovS4qSUiL8UGDhG+lB20WEmDwIQfTG2ZtpckLC6t1CNfa5eFLWCOm+yESU+3AmP4zdJLJSqbznEl2SQTePP5NzI1R5WTAvBbsgX+N9Ab1g0Yui/i042qWNQPLg3/5c/WCHqzImi45+ov42C4mj9OcjGcAf7kaWBMwfdwfChREWkSpMrC2RRndlw+iVbShSK7lVfoCvIqk4491uQBT3bz3S0e56Vin+Oj8qbmEA/5Hp1x9b80qTRy/8lj7KLgbhV60BBvX7ahOkrIFCSjTi8y87K/u4b3KQHesNZgA7SyWRuT+vY4XCb8ANVl8eIui7vK5NNSiFFqLZ1IoeFaVu+gS/hhDu3m/rmK2t5iR2YW/aKmnGTVQsPPy/POVY/zXWgf7c6ps/sSMwTk9sy5Yr8yGYBSUrtZkn1/gK0wpqlRCcjuG991sfgr/UKbhK1dU0rI9E9PBPhvLQpjUHT49AAHL9A9S3FOs66CAFsoVo00WNqKuZcmLpEgXdpbW+mj43tiNugCT98Ec8+Iq0rZYKhYdqFu9AUOdJVXk2udBx9VkOVcRYteFICtwz3fvR02KCU3Sn3a0HKZ4wWOujUnH4nThZGVlUNyg/Of+9GKXY4mxqv/5ocEkO4q8xmAP/OJHrvgJ42kTAjaVgjlSG3b5iJTcu4jvqfC/yKU88Sw==


*** stack smashing detected ***: /root/elogd_2.7.5_2142 terminated
 


 

 


*** stack smashing detected ***: /root/elogd_2.7.5_2142 terminated

Program received signal SIGABRT, Aborted.
0xffffe410 in __kernel_vsyscall ()
(gdb) bt
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7dad875 in raise () from /lib/tls/i686/cmov/libc.so.6
#2  0xb7daf201 in abort () from /lib/tls/i686/cmov/libc.so.6
#3  0xb7de4e5c in ?? () from /lib/tls/i686/cmov/libc.so.6
#4  0x00000000 in ?? ()
(gdb)

 

 

 

 

    icon2.gif   Re: Elogd crashes with: *** stack smashing detected ***, posted by Niklas on Fri Nov 21 16:02:10 2008 

Niklas wrote:

Hi,

 

elogd sometimes crashes when there are large cookies. Or I'd guess it has something to do with the cookies, elogd crashed over and over again until I cleaned out cookies and authenticated sessions in firefox, then it stopped.

 

When I run "elogd -v" in gdb, and someone does:

 



GET / HTTP/1.1
Host: bba.eld.ki.sw.home.se:8080
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; sv-SE; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: urem=0; TWIKISID=ecaa5a39e8446a27ec5a34bcbb9d4bcb; unm=erirone; upwd=c3w5MTg1; ipplanNoAuth=yes; SMSESSION=oKvAAv/J9WoCo6KoVdEJkhxz44G10x7TXigffOaAjLrSf0iOFrRJq97oWl32/UBQMvFslc4BgxN/VCz2K7/IRaKdFgmU4CHq/1UUv2RvdHB2HUbYbph+JgKUpAG+kN6Cc4BTwRWhmemUNhONXMRJUCfa6Tq9/osID2AT1wBFInFNww2xVmJPDSi1oltxtT345RgdGQIZbHzG2HBi1GijpiaD+4FI3WLLRzJOj3Art92BLlVDWSaPxKSdSZgVNfRSw33SupUqwD0Is2pc+ufKn4cg0azyOTLNDFOl0U5RI7K9AVgYM0NBsfDoEyBfK8pYIZTMqFFQsnWAdwYz9M2RLDBKyfMXdfGb3rrnOdPH0zvvkkoT01pZObI7dSqHD7IXLbjN/8Pt0O4eo5/SSQ7uKRGpBip0pKe3mxZYI4hsJejYwVBFegovS4qSUiL8UGDhG+lB20WEmDwIQfTG2ZtpckLC6t1CNfa5eFLWCOm+yESU+3AmP4zdJLJSqbznEl2SQTePP5NzI1R5WTAvBbsgX+N9Ab1g0Yui/i042qWNQPLg3/5c/WCHqzImi45+ov42C4mj9OcjGcAf7kaWBMwfdwfChREWkSpMrC2RRndlw+iVbShSK7lVfoCvIqk4491uQBT3bz3S0e56Vin+Oj8qbmEA/5Hp1x9b80qTRy/8lj7KLgbhV60BBvX7ahOkrIFCSjTi8y87K/u4b3KQHesNZgA7SyWRuT+vY4XCb8ANVl8eIui7vK5NNSiFFqLZ1IoeFaVu+gS/hhDu3m/rmK2t5iR2YW/aKmnGTVQsPPy/POVY/zXWgf7c6ps/sSMwTk9sy5Yr8yGYBSUrtZkn1/gK0wpqlRCcjuG991sfgr/UKbhK1dU0rI9E9PBPhvLQpjUHT49AAHL9A9S3FOs66CAFsoVo00WNqKuZcmLpEgXdpbW+mj43tiNugCT98Ec8+Iq0rZYKhYdqFu9AUOdJVXk2udBx9VkOVcRYteFICtwz3fvR02KCU3Sn3a0HKZ4wWOujUnH4nThZGVlUNyg/Of+9GKXY4mxqv/5ocEkO4q8xmAP/OJHrvgJ42kTAjaVgjlSG3b5iJTcu4jvqfC/yKU88Sw==


*** stack smashing detected ***: /root/elogd_2.7.5_2142 terminated
 


 

 


*** stack smashing detected ***: /root/elogd_2.7.5_2142 terminated

Program received signal SIGABRT, Aborted.
0xffffe410 in __kernel_vsyscall ()
(gdb) bt
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7dad875 in raise () from /lib/tls/i686/cmov/libc.so.6
#2  0xb7daf201 in abort () from /lib/tls/i686/cmov/libc.so.6
#3  0xb7de4e5c in ?? () from /lib/tls/i686/cmov/libc.so.6
#4  0x00000000 in ?? ()
(gdb)

 

 

 

 

 Stefan,

perhaps there should be something like the bold text below in elogd.c:

int process_http_request(const char *request, int i_conn)^M
...

   /* extract cookies */^M
   if ((p = strstr(request, "Cookie:")) != NULL) {^M
      p += 6;^M
      do {^M
         p++;^M
         while (*p && *p == ' ')^M
            p++;^M
         strlcpy(str, p, sizeof(str));^M
         for (i = 0; i < (int) strlen(str); i++)^M
            if (str[i] == '=' || str[i] == ';')^M
               break;^M
         if (str[i] == '=') {^M
            str[i] = 0;^M
            p += i + 1;^M
            for (i = 0; *p && *p != ';' && *p != '\r' && *p != '\n' && i < (int) sizeof(cookie); i++)
                      cookie[i] = *p++;

...

    icon2.gif   Re: Elogd crashes with: *** stack smashing detected ***, posted by Niklas on Thu Nov 27 10:29:19 2008 

Stefan Ritt wrote:

 

Niklas wrote:

 

Stefan,

perhaps there should be something like the bold text below in elogd.c:

int process_http_request(const char *request, int i_conn)^M
...

   /* extract cookies */^M
   if ((p = strstr(request, "Cookie:")) != NULL) {^M
      p += 6;^M
      do {^M
         p++;^M
         while (*p && *p == ' ')^M
            p++;^M
         strlcpy(str, p, sizeof(str));^M
         for (i = 0; i < (int) strlen(str); i++)^M
            if (str[i] == '=' || str[i] == ';')^M
               break;^M
         if (str[i] == '=') {^M
            str[i] = 0;^M
            p += i + 1;^M
            for (i = 0; *p && *p != ';' && *p != '\r' && *p != '\n' && i < (int) sizeof(cookie); i++)
                      cookie[i] = *p++;

...

 

Wow, where did you get that long cookie from? Certainly not from elogd. You must run elogd under Apache, and have some other service next to it on your server which distributes this long cookies, that's why other people did not experience this problem yet. I appreciate your fix. It's alwasy nice to see users not only complain about things, but try to fix them. Your fix is almost correct, you need a

i<(int) sizeof(cookie)-1

since there is the trailing zero for terminating the cookie string. I applied your fix to SVN revision #2146.

I the cookie is used for single-sign-on for multiple sites within company.com. So the cookie is issued for "company.com" i.e. all websites gets it even elog.company.com:8080..

I mostly fibble little bit in perl (dont need to bother with trailing zeros there ).

BR, Niklas

 

 

    icon2.gif   Re: Elogd crashes with: *** stack smashing detected ***, posted by Niklas on Fri Jan 9 10:41:20 2009 

Stefan Ritt wrote:

 

Niklas wrote:

 

Stefan,

perhaps there should be something like the bold text below in elogd.c:

int process_http_request(const char *request, int i_conn)^M
...

   /* extract cookies */^M
   if ((p = strstr(request, "Cookie:")) != NULL) {^M
      p += 6;^M
      do {^M
         p++;^M
         while (*p && *p == ' ')^M
            p++;^M
         strlcpy(str, p, sizeof(str));^M
         for (i = 0; i < (int) strlen(str); i++)^M
            if (str[i] == '=' || str[i] == ';')^M
               break;^M
         if (str[i] == '=') {^M
            str[i] = 0;^M
            p += i + 1;^M
            for (i = 0; *p && *p != ';' && *p != '\r' && *p != '\n' && i < (int) sizeof(cookie); i++)
                      cookie[i] = *p++;

...

 

Wow, where did you get that long cookie from? Certainly not from elogd. You must run elogd under Apache, and have some other service next to it on your server which distributes this long cookies, that's why other people did not experience this problem yet. I appreciate your fix. It's alwasy nice to see users not only complain about things, but try to fix them. Your fix is almost correct, you need a

i<(int) sizeof(cookie)-1

since there is the trailing zero for terminating the cookie string. I applied your fix to SVN revision #2146.

 Just noticed that this fix does not work. Elog cookies e.g. "upwd" may be after other long cookies its not seen, as now it stops reading the cookie-string after 256 chars. There needs to be something that goes through the cookies and saves only elog cookies... Would probably be better if you code that, if you have time  =D

 

BR, niklas

    icon2.gif   Re: Elogd crashes with: *** stack smashing detected ***, posted by Niklas on Tue Jan 13 14:30:37 2009 

 

Stefan,

To solve the problem I suggest following change to elogd.c (2.7.5 2159).

Create a list of elog cookies, and store only these as parameters. Example diff:

---
$ diff elog/src/elogd.c elogd_niho.c
26557a26558
>    const char *cookie_list[] = { "upwd", "unm", "elmode", "urem", "wpwd", "apwd", "uname", NULL };
26603c26604,26610
<          setparam(str, cookie);
---
>          for(i=0; cookie_list[i]; i++) {
>             if(strcmp(cookie_list[i], str) == 0) {
>                setparam(str, cookie);
>                break;
>             }
>          }
>
---

In a more readable fashion:
int process_http_request(const char *request, int i_conn)
{
...
const char *cookie_list[] = { "upwd", "unm", "elmode", "urem", "wpwd", "apwd", "uname", NULL };
...
...
...
         /* store cookie as parameter */
         for(i=0; cookie_list[i]; i++) {
            if(strcmp(cookie_list[i], str) == 0) {
               setparam(str, cookie);
               break;
            }
         }

...

 

Not sure if I got all the cookies used by elog.

 

BR, niklas

    icon2.gif   Re: Elogd crashes with: *** stack smashing detected ***, posted by Niklas on Wed Mar 4 16:32:56 2009 

Stefan Ritt wrote:

 

Niklas wrote:

Create a list of elog cookies, and store only these as parameters. Examplef:

int process_http_request(const char *request, int i_conn)

{
...
const char *cookie_list[] = { "upwd", "unm", "elmode", "urem", "wpwd", "apwd", "uname", NULL };
...
...
...
         /* store cookie as parameter */
         for(i=0; cookie_list[i]; i++) {
            if(strcmp(cookie_list[i], str) == 0) {
               setparam(str, cookie);
               break;
            }
         }

...

 

I'm not sure if this works, since your test

i < (int) sizeof(cookie)

still will stop parsing cookies if there is one which is too long. So I added your test plus changed the parsing to:

for (i = 0; *p && *p != ';' && *p != '\r' && *p != '\n' ; )

   if (i < (int) sizeof(cookie)-1)

      cookie[i++] = *p++;

   cookie[i] = 0;

 


The modification is in the curren SVN revision (# 2162). So have a look and check that it works.

Tried 2178 and I seem to hit some endless loop when I have big cookies. The loop seems to be in this for-loop (from gdb).

I perhaps you should have:

for (i = 0; *p && *p != ';' && *p != '\r' && *p != '\n' ; )

   if (i < (int) sizeof(cookie)-1)

      cookie[i++] = *p++;

   else
      break;

   cookie[i] = 0;

... Seems to be working for me =)

 

ELOG V3.1.5-3fb85fa6