O
Oliver Block
Hello,
a program causes a segmentation fault and I'd like to know if I interpret
the following gdb output correctly (text continues after output):
***************************************************************************
#1 0x4012eb3f in gethostbyname () from /lib/tls/libc.so.6
No symbol table info available.
#2 0x08049312 in http_send_recv (hostname=0x804a340 "www.oliver-block.eu",
request=0x804b030 "GET /checkip.php HTTP/1.0\r\nHost:
www.oliver-block.eu\r\n\r\n") at ddnscli.c:168
hptr = (struct hostent *) 0x804b068
sptr = (struct servent *) 0x804b028
sin = {sin_family = 2, sin_port = 0, sin_addr = {s_addr = 0},
sin_zero = "\000\000\000\000\000\000\000"}
s = 134514323
retval = 45
n = 0
buflen = 1024
#3 0x080498ee in get_ip (qry=0x804b008) at ddnscli.c:323
tmp = 0x0
r = 0x804b030 "GET /checkip.php HTTP/1.0\r\nHost:
www.oliver-block.eu\r\n\r\n"
#4 0x080499fa in main (argc=3, argv=0xbffff1a4) at ddnscli.c:398
option = 8 '\b'
q = (struct query *) 0x804b008
(gdb) p sizeof(struct servent)
$1 = 16
***********************************************************************
When I extract
from #2:
sptr = (struct servent *) 0x804b028
from #4:
r = 0x804b030 "GET /checkip.php HTTP/1.0\r\nHost:
www.oliver-block.eu\r\n\r\n"
as servent has a size of 16 bytes
804b028 + 16 = 804b038
These two variables seem to overlap. Do you agree?
Regards,
Oliver
a program causes a segmentation fault and I'd like to know if I interpret
the following gdb output correctly (text continues after output):
***************************************************************************
#1 0x4012eb3f in gethostbyname () from /lib/tls/libc.so.6
No symbol table info available.
#2 0x08049312 in http_send_recv (hostname=0x804a340 "www.oliver-block.eu",
request=0x804b030 "GET /checkip.php HTTP/1.0\r\nHost:
www.oliver-block.eu\r\n\r\n") at ddnscli.c:168
hptr = (struct hostent *) 0x804b068
sptr = (struct servent *) 0x804b028
sin = {sin_family = 2, sin_port = 0, sin_addr = {s_addr = 0},
sin_zero = "\000\000\000\000\000\000\000"}
s = 134514323
retval = 45
n = 0
buflen = 1024
#3 0x080498ee in get_ip (qry=0x804b008) at ddnscli.c:323
tmp = 0x0
r = 0x804b030 "GET /checkip.php HTTP/1.0\r\nHost:
www.oliver-block.eu\r\n\r\n"
#4 0x080499fa in main (argc=3, argv=0xbffff1a4) at ddnscli.c:398
option = 8 '\b'
q = (struct query *) 0x804b008
(gdb) p sizeof(struct servent)
$1 = 16
***********************************************************************
When I extract
from #2:
sptr = (struct servent *) 0x804b028
from #4:
r = 0x804b030 "GET /checkip.php HTTP/1.0\r\nHost:
www.oliver-block.eu\r\n\r\n"
as servent has a size of 16 bytes
804b028 + 16 = 804b038
These two variables seem to overlap. Do you agree?
Regards,
Oliver