Created
May 14, 2012 18:00
-
-
Save nurse/2695368 to your computer and use it in GitHub Desktop.
SEGV in __flockfile_internal on NetBSD
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
% uname -a | |
NetBSD nbsd.rubyci.org 6.99.4 NetBSD 6.99.4 (GENERIC) #0: Fri Apr 13 00:47:23 JST 2012 naruse@nbsd.rubyci.org:/usr/obj/sys/arch/i386/compile/GENERIC i386 | |
% ./ruby -v | |
ruby 2.0.0dev (2012-05-14 trunk 35645) [i386-netbsdelf6.99.4] | |
% cat test/ruby/test_io2.rb | |
require 'test/unit' | |
require 'tempfile' | |
require_relative 'envutil' | |
class TestIO < Test::Unit::TestCase | |
def test_flush_in_finalizer1 | |
require 'tempfile' | |
bug3910 = '[ruby-dev:42341]' | |
t = Tempfile.new("bug3910") | |
path = t.path | |
t.close | |
fds = [] | |
assert_nothing_raised(TypeError, bug3910) do | |
500.times { | |
f = File.open(path, "w") | |
fds << f.fileno | |
f.print "hoge" | |
} | |
end | |
ensure | |
GC.start | |
GC.disable | |
end | |
end | |
% make TESTS='-qv ruby/test_io2.rb net/http/test_http.rb' test-all RUNRUBYOPT=--debugger | |
CC = gcc | |
LD = ld | |
LDSHARED = gcc -shared | |
CFLAGS = -O0 -fno-fast-math -g3 -ggdb -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Werror=pointer-arith -Werror=write-strings -Werror=declaration-after-statement -Werror=implicit-function-declaration -fPIC -pipe | |
XCFLAGS = -include ruby/config.h -include ruby/missing.h -D_FORTIFY_SOURCE=2 -fstack-protector -fno-strict-overflow -fvisibility=hidden -DRUBY_EXPORT | |
CPPFLAGS = -I. -I.ext/include/i386-netbsdelf6.99.4 -I./include -I. | |
DLDFLAGS = -Wl,-soname,libruby.so.20 -fstack-protector | |
SOLIBS = -lpthread -lrt -lcrypt -lm | |
./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext --debugger -- --disable-gems "./test/runner.rb" --ruby="./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext --debugger -- --disable-gems" -qv ruby/test_io2.rb net/http/test_http.rb | |
GNU gdb (GDB) 7.3.1 | |
Copyright (C) 2011 Free Software Foundation, Inc. | |
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> | |
This is free software: you are free to change and redistribute it. | |
There is NO WARRANTY, to the extent permitted by law. Type "show copying" | |
and "show warranty" for details. | |
This GDB was configured as "i486--netbsdelf". | |
For bug reporting instructions, please see: | |
<http://www.gnu.org/software/gdb/bugs/>... | |
Reading symbols from /home/naruse/ruby/ruby...done. | |
(gdb) r | |
Starting program: /home/naruse/ruby/ruby --disable-gems ./test/runner.rb --ruby=./miniruby\ -I./lib\ | |
-I.\ -I.ext/common\ \ ./tool/runruby.rb\ --extout=.ext\ --debugger\ --\ --disable-gems -qv ruby/tes | |
t_io2.rb net/http/test_http.rb | |
Run options: "--ruby=./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext --debugge | |
r -- --disable-gems" -qv | |
# Running tests: | |
TestIO#test_flush_in_finalizer1 = 0.05 s = . | |
TestNetHTTPContinue#test_expect_continue = [New LWP 5] | |
Program received signal SIGSEGV, Segmentation fault. | |
[Switching to LWP 5] | |
0xbb97a95d in __flockfile_internal () from /usr/lib/libc.so.12 | |
(gdb) info thr | |
Id Target Id Frame | |
5 LWP 2 0xbb8990c7 in _sys___select50 () from /usr/lib/libc.so.12 | |
4 LWP 3 0xbb8990c7 in _sys___select50 () from /usr/lib/libc.so.12 | |
3 LWP 4 rb_enc_get_index (obj=3145475140) at encoding.c:677 | |
* 2 LWP 5 0xbb97a95d in __flockfile_internal () from /usr/lib/libc.so.12 | |
1 LWP 1 0xbb8990c7 in _sys___select50 () from /usr/lib/libc.so.12 | |
(gdb) bt | |
#0 0xbb97a95d in __flockfile_internal () from /usr/lib/libc.so.12 | |
#1 0xbb94ea13 in fgets () from /usr/lib/libc.so.12 | |
#2 0xbb94a9c8 in __fgets_chk () from /usr/lib/libc.so.12 | |
#3 0xbb940c52 in _gethtent () from /usr/lib/libc.so.12 | |
#4 0xbb940eee in _gethtbyaddr () from /usr/lib/libc.so.12 | |
#5 0xbb95cd68 in nsdispatch () from /usr/lib/libc.so.12 | |
#6 0xbb940ab8 in gethostbyaddr () from /usr/lib/libc.so.12 | |
#7 0xbb93e973 in getpeername () from /usr/lib/libc.so.12 | |
#8 0xb9efef8c in ?? () | |
#9 0xbb93ec8f in getnameinfo () from /usr/lib/libc.so.12 | |
#10 0xbb82b0a6 in nogvl_getnameinfo (arg=0xb9efe6ec) at raddrinfo.c:202 | |
#11 0xbbb5950c in rb_thread_blocking_region (func=0xbb82b036 <nogvl_getnameinfo>, | |
data1=0xb9efe6ec, ubf=0xbbb574d9 <ubf_select>, data2=0xba30a300) at thread.c:1131 | |
#12 0xbb82b110 in rb_getnameinfo (sa=0xb9efef88, salen=16, host=0xb9efeb40 "", hostlen=1024, | |
serv=0x0, servlen=0, flags=0) at raddrinfo.c:226 | |
#13 0xbb82b7e1 in rsock_ipaddr (sockaddr=0xb9efef88, norevlookup=0) at raddrinfo.c:402 | |
#14 0xbb8242d0 in ip_peeraddr (argc=0, argv=0xb9f01028, sock=3145469380) at ipsocket.c:238 | |
#15 0xbbb40d31 in call_cfunc (func=0xbb824217 <ip_peeraddr>, recv=3145469380, len=-1, argc=0, | |
argv=0xb9f01028) at vm_insnhelper.c:367 | |
#16 0xbbb41724 in vm_call_cfunc (th=0xba30a300, reg_cfp=0xb9f80f7c, num=0, recv=3145469380, | |
blockptr=0x0, me=0xbb27d680) at vm_insnhelper.c:454 | |
#17 0xbbb41cf2 in vm_call_method (th=0xba30a300, cfp=0xb9f80f7c, num=0, blockptr=0x0, flag=0, | |
id=24832, me=0xbb27d680, recv=3145469380) at vm_insnhelper.c:580 | |
#18 0xbbb467cd in vm_exec_core (th=0xba30a300, initial=0) at insns.def:1018 | |
#19 0xbbb52b83 in vm_exec (th=0xba30a300) at vm.c:1223 | |
#20 0xbbb51501 in invoke_block_from_c (th=0xba30a300, block=0xba3900d0, self=3145438660, argc=0, | |
argv=0xbb7c0ed0, blockptr=0x0, cref=0x0) at vm.c:606 | |
#21 0xbbb516d5 in rb_vm_invoke_proc (th=0xba30a300, proc=0xba3900d0, self=3145438660, argc=0, | |
argv=0xbb7c0ed0, blockptr=0x0) at vm.c:652 | |
#22 0xbbb580d5 in thread_start_func_2 (th=0xba30a300, stack_start=0xb9f00000) at thread.c:453 | |
#23 0xbbb56f5d in thread_start_func_1 (th_ptr=0xba30a300) at thread_pthread.c:658 | |
#24 0xbb9d66b2 in ?? () from /usr/lib/libpthread.so.1 | |
#25 0xbb8e8ab0 in ___lwp_park50 () from /usr/lib/libc.so.12 | |
#26 0xb9f81000 in ?? () | |
#27 0xbb9d5a77 in pthread_create () from /usr/lib/libpthread.so.1 | |
Backtrace stopped: previous frame inner to this frame (corrupt stack?) | |
(gdb) info registers | |
eax 0xbb996da4 -1147572828 | |
ecx 0x1 1 | |
edx 0x0 0 | |
ebx 0xbb9934f4 -1147587340 | |
esp 0xb9efdeec 0xb9efdeec | |
ebp 0xb9efdf34 0xb9efdf34 | |
esi 0x0 0 | |
edi 0x1 1 | |
eip 0xbb97a95d 0xbb97a95d <__flockfile_internal+47> | |
eflags 0x210202 [ IF RF ID ] | |
cs 0x17 23 | |
ss 0x1f 31 | |
ds 0x1f 31 | |
es 0x1f 31 | |
fs *value not available* | |
gs *value not available* | |
(gdb) disas | |
Dump of assembler code for function __flockfile_internal: | |
0xbb97a92e <+0>: push %ebp | |
0xbb97a92f <+1>: mov %esp,%ebp | |
0xbb97a931 <+3>: push %edi | |
0xbb97a932 <+4>: push %esi | |
0xbb97a933 <+5>: push %ebx | |
0xbb97a934 <+6>: sub $0x3c,%esp | |
0xbb97a937 <+9>: call 0xbb97a93c <__flockfile_internal+14> | |
0xbb97a93c <+14>: pop %ebx | |
0xbb97a93d <+15>: add $0x18bb8,%ebx | |
0xbb97a943 <+21>: mov 0x8(%ebp),%esi | |
0xbb97a946 <+24>: mov 0xc(%ebp),%edi | |
0xbb97a949 <+27>: mov -0x1dc(%ebx),%eax | |
0xbb97a94f <+33>: mov (%eax),%ecx | |
0xbb97a951 <+35>: test %ecx,%ecx | |
0xbb97a953 <+37>: jne 0xbb97a95d <__flockfile_internal+47> | |
0xbb97a955 <+39>: add $0x3c,%esp | |
0xbb97a958 <+42>: pop %ebx | |
0xbb97a959 <+43>: pop %esi | |
0xbb97a95a <+44>: pop %edi | |
0xbb97a95b <+45>: pop %ebp | |
0xbb97a95c <+46>: ret | |
=> 0xbb97a95d <+47>: mov 0x30(%esi),%eax | |
0xbb97a960 <+50>: add $0x11c,%eax | |
0xbb97a965 <+55>: mov %eax,(%esp) | |
0xbb97a968 <+58>: call 0xbb895ccc <__libc_mutex_lock@plt> | |
0xbb97a96d <+63>: mov 0x30(%esi),%eax | |
0xbb97a970 <+66>: mov 0x150(%eax),%eax | |
0xbb97a976 <+72>: mov %eax,-0x2c(%ebp) | |
0xbb97a979 <+75>: call 0xbb896a8c <__libc_thr_self@plt> | |
0xbb97a97e <+80>: cmp %eax,-0x2c(%ebp) | |
0xbb97a981 <+83>: je 0xbb97aa47 <__flockfile_internal+281> | |
0xbb97a987 <+89>: lea -0x1c(%ebp),%eax | |
0xbb97a98a <+92>: mov %eax,0x4(%esp) | |
0xbb97a98e <+96>: movl $0x1,(%esp) | |
0xbb97a995 <+103>: call 0xbb89578c <__libc_thr_setcancelstate@plt> | |
0xbb97a99a <+108>: mov 0x30(%esi),%eax | |
0xbb97a99d <+111>: mov 0x150(%eax),%edx | |
0xbb97a9a3 <+117>: test %edx,%edx | |
0xbb97a9a5 <+119>: je 0xbb97a9cb <__flockfile_internal+157> | |
0xbb97a9a7 <+121>: lea 0x11c(%eax),%edx | |
0xbb97a9ad <+127>: mov %edx,0x4(%esp) | |
0xbb97a9b1 <+131>: add $0x138,%eax | |
0xbb97a9b6 <+136>: mov %eax,(%esp) | |
0xbb97a9b9 <+139>: call 0xbb89584c <__libc_cond_wait@plt> | |
0xbb97a9be <+144>: mov 0x30(%esi),%eax | |
0xbb97a9c1 <+147>: mov 0x150(%eax),%ecx | |
0xbb97a9c7 <+153>: test %ecx,%ecx | |
---Type <return> to continue, or q <return> to quit---q | |
Quit | |
(gdb) f 1 | |
#1 0xbb94ea13 in fgets () from /usr/lib/libc.so.12 | |
(gdb) info registers | |
eax 0xbb996da4 -1147572828 | |
ecx 0x1 1 | |
edx 0x0 0 | |
ebx 0xbb9934f4 -1147587340 | |
esp 0xb9efdf3c 0xb9efdf3c | |
ebp 0xb9efdf74 0xb9efdf74 | |
esi 0x0 0 | |
edi 0x0 0 | |
eip 0xbb94ea13 0xbb94ea13 <fgets+59> | |
eflags 0x210202 [ IF RF ID ] | |
cs 0x17 23 | |
ss 0x1f 31 | |
ds 0x1f 31 | |
es 0x1f 31 | |
fs *value not available* | |
gs *value not available* | |
(gdb) disas | |
Dump of assembler code for function fgets: | |
0xbb94e9d8 <+0>: push %ebp | |
0xbb94e9d9 <+1>: mov %esp,%ebp | |
0xbb94e9db <+3>: push %edi | |
0xbb94e9dc <+4>: push %esi | |
0xbb94e9dd <+5>: push %ebx | |
0xbb94e9de <+6>: sub $0x2c,%esp | |
0xbb94e9e1 <+9>: call 0xbb94e9e6 <fgets+14> | |
0xbb94e9e6 <+14>: pop %ebx | |
0xbb94e9e7 <+15>: add $0x44b0e,%ebx | |
0xbb94e9ed <+21>: mov 0x10(%ebp),%edi | |
0xbb94e9f0 <+24>: mov 0x8(%ebp),%ecx | |
0xbb94e9f3 <+27>: test %ecx,%ecx | |
0xbb94e9f5 <+29>: je 0xbb94eb45 <fgets+365> | |
0xbb94e9fb <+35>: test %edi,%edi | |
0xbb94e9fd <+37>: je 0xbb94eb74 <fgets+412> | |
0xbb94ea03 <+43>: movl $0x1,0x4(%esp) | |
0xbb94ea0b <+51>: mov %edi,(%esp) | |
0xbb94ea0e <+54>: call 0xbb894d6c <__flockfile_internal@plt> | |
=> 0xbb94ea13 <+59>: mov 0x30(%edi),%eax | |
0xbb94ea16 <+62>: cmp $0xfffffff8,%eax | |
0xbb94ea19 <+65>: je 0xbb94ea29 <fgets+81> | |
0xbb94ea1b <+67>: mov 0x110(%eax),%edx | |
0xbb94ea21 <+73>: test %edx,%edx | |
0xbb94ea23 <+75>: je 0xbb94eaed <fgets+277> | |
0xbb94ea29 <+81>: mov 0xc(%ebp),%eax | |
0xbb94ea2c <+84>: sub $0x1,%eax | |
0xbb94ea2f <+87>: mov %eax,-0x1c(%ebp) | |
0xbb94ea32 <+90>: mov 0x8(%ebp),%eax | |
0xbb94ea35 <+93>: mov %eax,-0x20(%ebp) | |
0xbb94ea38 <+96>: mov %edi,%edx | |
0xbb94ea3a <+98>: jmp 0xbb94ea9d <fgets+197> | |
0xbb94ea3c <+100>: mov -0x1c(%ebp),%eax | |
0xbb94ea3f <+103>: test %eax,%eax | |
0xbb94ea41 <+105>: js 0xbb94eba3 <fgets+459> | |
0xbb94ea47 <+111>: mov -0x1c(%ebp),%esi | |
0xbb94ea4a <+114>: mov %esi,0x8(%esp) | |
0xbb94ea4e <+118>: movl $0xa,0x4(%esp) | |
0xbb94ea56 <+126>: mov %ecx,(%esp) | |
0xbb94ea59 <+129>: mov %edx,-0x24(%ebp) | |
0xbb94ea5c <+132>: mov %ecx,-0x28(%ebp) | |
0xbb94ea5f <+135>: call 0xbb89732c <memchr@plt> | |
0xbb94ea64 <+140>: test %eax,%eax | |
0xbb94ea66 <+142>: mov -0x24(%ebp),%edx | |
0xbb94ea69 <+145>: mov -0x28(%ebp),%ecx | |
0xbb94ea6c <+148>: jne 0xbb94eafc <fgets+292> | |
0xbb94ea72 <+154>: sub %esi,%edi | |
0xbb94ea74 <+156>: mov %edi,0x4(%edx) | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb94ea77 <+159>: lea (%ecx,%esi,1),%eax | |
0xbb94ea7a <+162>: mov %eax,(%edx) | |
0xbb94ea7c <+164>: mov %esi,0x8(%esp) | |
0xbb94ea80 <+168>: mov %ecx,0x4(%esp) | |
0xbb94ea84 <+172>: mov -0x20(%ebp),%eax | |
0xbb94ea87 <+175>: mov %eax,(%esp) | |
0xbb94ea8a <+178>: mov %edx,-0x24(%ebp) | |
0xbb94ea8d <+181>: call 0xbb89473c <memcpy@plt> | |
0xbb94ea92 <+186>: add %esi,-0x20(%ebp) | |
0xbb94ea95 <+189>: sub %esi,-0x1c(%ebp) | |
0xbb94ea98 <+192>: mov -0x24(%ebp),%edx | |
0xbb94ea9b <+195>: je 0xbb94eaaf <fgets+215> | |
0xbb94ea9d <+197>: mov 0x4(%edx),%edi | |
0xbb94eaa0 <+200>: test %edi,%edi | |
0xbb94eaa2 <+202>: jle 0xbb94ead2 <fgets+250> | |
0xbb94eaa4 <+204>: mov (%edx),%ecx | |
0xbb94eaa6 <+206>: cmp %edi,-0x1c(%ebp) | |
0xbb94eaa9 <+209>: jl 0xbb94ea3c <fgets+100> | |
0xbb94eaab <+211>: mov %edi,%esi | |
0xbb94eaad <+213>: jmp 0xbb94ea4a <fgets+114> | |
0xbb94eaaf <+215>: mov %edx,%edi | |
0xbb94eab1 <+217>: mov -0x20(%ebp),%eax | |
0xbb94eab4 <+220>: movb $0x0,(%eax) | |
0xbb94eab7 <+223>: movl $0x1,0x4(%esp) | |
0xbb94eabf <+231>: mov %edi,(%esp) | |
0xbb94eac2 <+234>: call 0xbb8960bc <__funlockfile_internal@plt> | |
0xbb94eac7 <+239>: mov 0x8(%ebp),%eax | |
0xbb94eaca <+242>: add $0x2c,%esp | |
0xbb94eacd <+245>: pop %ebx | |
0xbb94eace <+246>: pop %esi | |
0xbb94eacf <+247>: pop %edi | |
0xbb94ead0 <+248>: pop %ebp | |
0xbb94ead1 <+249>: ret | |
0xbb94ead2 <+250>: mov %edx,(%esp) | |
0xbb94ead5 <+253>: mov %edx,-0x24(%ebp) | |
0xbb94ead8 <+256>: call 0xbb89410c <__srefill@plt> | |
0xbb94eadd <+261>: test %eax,%eax | |
0xbb94eadf <+263>: mov -0x24(%ebp),%edx | |
0xbb94eae2 <+266>: jne 0xbb94ebd1 <fgets+505> | |
0xbb94eae8 <+272>: mov 0x4(%edx),%edi | |
0xbb94eaeb <+275>: jmp 0xbb94eaa4 <fgets+204> | |
0xbb94eaed <+277>: movl $0xffffffff,0x110(%eax) | |
0xbb94eaf7 <+287>: jmp 0xbb94ea29 <fgets+81> | |
0xbb94eafc <+292>: mov %edx,%esi | |
0xbb94eafe <+294>: mov %edi,%edx | |
0xbb94eb00 <+296>: mov %esi,%edi | |
0xbb94eb02 <+298>: add $0x1,%eax | |
0xbb94eb05 <+301>: mov %eax,%esi | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb94eb07 <+303>: sub %ecx,%esi | |
0xbb94eb09 <+305>: sub %esi,%edx | |
0xbb94eb0b <+307>: mov %edx,0x4(%edi) | |
0xbb94eb0e <+310>: mov %eax,(%edi) | |
0xbb94eb10 <+312>: mov %esi,0x8(%esp) | |
0xbb94eb14 <+316>: mov %ecx,0x4(%esp) | |
0xbb94eb18 <+320>: mov -0x20(%ebp),%eax | |
0xbb94eb1b <+323>: mov %eax,(%esp) | |
0xbb94eb1e <+326>: call 0xbb89473c <memcpy@plt> | |
0xbb94eb23 <+331>: mov -0x20(%ebp),%eax | |
0xbb94eb26 <+334>: movb $0x0,(%eax,%esi,1) | |
0xbb94eb2a <+338>: movl $0x1,0x4(%esp) | |
0xbb94eb32 <+346>: mov %edi,(%esp) | |
0xbb94eb35 <+349>: call 0xbb8960bc <__funlockfile_internal@plt> | |
0xbb94eb3a <+354>: mov 0x8(%ebp),%eax | |
0xbb94eb3d <+357>: add $0x2c,%esp | |
0xbb94eb40 <+360>: pop %ebx | |
0xbb94eb41 <+361>: pop %esi | |
0xbb94eb42 <+362>: pop %edi | |
0xbb94eb43 <+363>: pop %ebp | |
0xbb94eb44 <+364>: ret | |
0xbb94eb45 <+365>: lea -0x1730a(%ebx),%eax | |
0xbb94eb4b <+371>: mov %eax,0xc(%esp) | |
0xbb94eb4f <+375>: lea -0x97c4(%ebx),%eax | |
0xbb94eb55 <+381>: mov %eax,0x8(%esp) | |
0xbb94eb59 <+385>: movl $0x42,0x4(%esp) | |
0xbb94eb61 <+393>: lea -0x97e4(%ebx),%eax | |
0xbb94eb67 <+399>: mov %eax,(%esp) | |
0xbb94eb6a <+402>: call 0xbb8957ec <__diagassert13@plt> | |
0xbb94eb6f <+407>: jmp 0xbb94e9fb <fgets+35> | |
0xbb94eb74 <+412>: lea -0x9927(%ebx),%eax | |
0xbb94eb7a <+418>: mov %eax,0xc(%esp) | |
0xbb94eb7e <+422>: lea -0x97c4(%ebx),%eax | |
0xbb94eb84 <+428>: mov %eax,0x8(%esp) | |
0xbb94eb88 <+432>: movl $0x43,0x4(%esp) | |
0xbb94eb90 <+440>: lea -0x97e4(%ebx),%eax | |
0xbb94eb96 <+446>: mov %eax,(%esp) | |
0xbb94eb99 <+449>: call 0xbb8957ec <__diagassert13@plt> | |
0xbb94eb9e <+454>: jmp 0xbb94ea03 <fgets+43> | |
0xbb94eba3 <+459>: mov %edx,%edi | |
0xbb94eba5 <+461>: call 0xbb8978bc <__errno@plt> | |
0xbb94ebaa <+466>: movl $0x16,(%eax) | |
0xbb94ebb0 <+472>: orw $0x40,0xc(%edi) | |
0xbb94ebb5 <+477>: movl $0x1,0x4(%esp) | |
0xbb94ebbd <+485>: mov %edi,(%esp) | |
0xbb94ebc0 <+488>: call 0xbb8960bc <__funlockfile_internal@plt> | |
0xbb94ebc5 <+493>: movl $0x0,0x8(%ebp) | |
0xbb94ebcc <+500>: jmp 0xbb94eac7 <fgets+239> | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb94ebd1 <+505>: mov %edx,%edi | |
0xbb94ebd3 <+507>: mov -0x20(%ebp),%eax | |
0xbb94ebd6 <+510>: cmp %eax,0x8(%ebp) | |
0xbb94ebd9 <+513>: jne 0xbb94eab1 <fgets+217> | |
0xbb94ebdf <+519>: jmp 0xbb94ebb5 <fgets+477> | |
End of assembler dump. | |
(gdb) f 2 | |
#2 0xbb94a9c8 in __fgets_chk () from /usr/lib/libc.so.12 | |
(gdb) info registers | |
eax 0xbb996da4 -1147572828 | |
ecx 0x1 1 | |
edx 0x0 0 | |
ebx 0xbb9934f4 -1147587340 | |
esp 0xb9efdf7c 0xb9efdf7c | |
ebp 0xb9efdf94 0xb9efdf94 | |
esi 0x0 0 | |
edi 0xbb97cf9c -1147678820 | |
eip 0xbb94a9c8 0xbb94a9c8 <__fgets_chk+64> | |
eflags 0x210202 [ IF RF ID ] | |
cs 0x17 23 | |
ss 0x1f 31 | |
ds 0x1f 31 | |
es 0x1f 31 | |
fs *value not available* | |
gs *value not available* | |
(gdb) disas | |
Dump of assembler code for function __fgets_chk: | |
0xbb94a988 <+0>: push %ebp | |
0xbb94a989 <+1>: mov %esp,%ebp | |
0xbb94a98b <+3>: push %esi | |
0xbb94a98c <+4>: push %ebx | |
0xbb94a98d <+5>: sub $0x10,%esp | |
0xbb94a990 <+8>: call 0xbb94a995 <__fgets_chk+13> | |
0xbb94a995 <+13>: pop %ebx | |
0xbb94a996 <+14>: add $0x48b5f,%ebx | |
0xbb94a99c <+20>: mov 0x8(%ebp),%ecx | |
0xbb94a99f <+23>: mov 0xc(%ebp),%eax | |
0xbb94a9a2 <+26>: mov 0x10(%ebp),%edx | |
0xbb94a9a5 <+29>: mov 0x14(%ebp),%esi | |
0xbb94a9a8 <+32>: cmp $0x7ffffffe,%edx | |
0xbb94a9ae <+38>: ja 0xbb94a9b8 <__fgets_chk+48> | |
0xbb94a9b0 <+40>: test %eax,%eax | |
0xbb94a9b2 <+42>: js 0xbb94a9b8 <__fgets_chk+48> | |
0xbb94a9b4 <+44>: cmp %eax,%edx | |
0xbb94a9b6 <+46>: jb 0xbb94a9cf <__fgets_chk+71> | |
0xbb94a9b8 <+48>: mov %esi,0x8(%esp) | |
0xbb94a9bc <+52>: mov %eax,0x4(%esp) | |
0xbb94a9c0 <+56>: mov %ecx,(%esp) | |
0xbb94a9c3 <+59>: call 0xbb89636c <fgets@plt> | |
=> 0xbb94a9c8 <+64>: add $0x10,%esp | |
0xbb94a9cb <+67>: pop %ebx | |
0xbb94a9cc <+68>: pop %esi | |
0xbb94a9cd <+69>: pop %ebp | |
0xbb94a9ce <+70>: ret | |
0xbb94a9cf <+71>: call 0xbb8977fc <__chk_fail@plt> | |
End of assembler dump. | |
(gdb) f 3 | |
#3 0xbb940c52 in _gethtent () from /usr/lib/libc.so.12 | |
(gdb) info registers | |
eax 0xbb996da4 -1147572828 | |
ecx 0x1 1 | |
edx 0x0 0 | |
ebx 0xbb9934f4 -1147587340 | |
esp 0xb9efdf9c 0xb9efdf9c | |
ebp 0xb9efdfe4 0xb9efdfe4 | |
esi 0xbb9a0de0 -1147531808 | |
edi 0xbb97cf9c -1147678820 | |
eip 0xbb940c52 0xbb940c52 <_gethtent+109> | |
eflags 0x210202 [ IF RF ID ] | |
cs 0x17 23 | |
ss 0x1f 31 | |
ds 0x1f 31 | |
es 0x1f 31 | |
fs *value not available* | |
gs *value not available* | |
(gdb) disas [1/4884] | |
Dump of assembler code for function _gethtent: | |
0xbb940be5 <+0>: push %ebp | |
0xbb940be6 <+1>: mov %esp,%ebp | |
0xbb940be8 <+3>: push %edi | |
0xbb940be9 <+4>: push %esi | |
0xbb940bea <+5>: push %ebx | |
0xbb940beb <+6>: sub $0x3c,%esp | |
0xbb940bee <+9>: call 0xbb940bf3 <_gethtent+14> | |
0xbb940bf3 <+14>: pop %ebx | |
0xbb940bf4 <+15>: add $0x52901,%ebx | |
0xbb940bfa <+21>: mov 0xf8f0(%ebx),%eax | |
0xbb940c00 <+27>: test %eax,%eax | |
0xbb940c02 <+29>: je 0xbb940e49 <_gethtent+612> | |
0xbb940c08 <+35>: lea 0xd8ec(%ebx),%esi | |
0xbb940c0e <+41>: lea -0x16558(%ebx),%edi | |
0xbb940c14 <+47>: lea -0x16555(%ebx),%edx | |
0xbb940c1a <+53>: mov %edx,-0x1c(%ebp) | |
0xbb940c1d <+56>: lea 0xd8d8(%ebx),%edx | |
0xbb940c23 <+62>: mov %edx,-0x20(%ebp) | |
0xbb940c26 <+65>: jmp 0xbb940c36 <_gethtent+81> | |
0xbb940c28 <+67>: cmp %eax,%ecx | |
0xbb940c2a <+69>: je 0xbb940cd7 <_gethtent+242> | |
0xbb940c30 <+75>: mov 0xf8f0(%ebx),%eax | |
0xbb940c36 <+81>: mov %eax,0xc(%esp) | |
0xbb940c3a <+85>: movl $0x2000,0x8(%esp) | |
0xbb940c42 <+93>: movl $0x2000,0x4(%esp) | |
0xbb940c4a <+101>: mov %esi,(%esp) | |
0xbb940c4d <+104>: call 0xbb89671c <__fgets_chk@plt> | |
=> 0xbb940c52 <+109>: test %eax,%eax | |
0xbb940c54 <+111>: je 0xbb940e15 <_gethtent+560> | |
0xbb940c5a <+117>: cmpb $0x23,(%eax) | |
0xbb940c5d <+120>: je 0xbb940c30 <_gethtent+75> | |
0xbb940c5f <+122>: mov %edi,0x4(%esp) | |
0xbb940c63 <+126>: mov %eax,(%esp) | |
0xbb940c66 <+129>: mov %eax,-0x2c(%ebp) | |
0xbb940c69 <+132>: call 0xbb897b4c <strpbrk@plt> | |
0xbb940c6e <+137>: test %eax,%eax | |
0xbb940c70 <+139>: mov -0x2c(%ebp),%edx | |
0xbb940c73 <+142>: je 0xbb940c30 <_gethtent+75> | |
0xbb940c75 <+144>: movb $0x0,(%eax) | |
0xbb940c78 <+147>: mov -0x1c(%ebp),%eax | |
0xbb940c7b <+150>: mov %eax,0x4(%esp) | |
0xbb940c7f <+154>: mov %edx,(%esp) | |
0xbb940c82 <+157>: mov %edx,-0x2c(%ebp) | |
0xbb940c85 <+160>: call 0xbb897b4c <strpbrk@plt> | |
0xbb940c8a <+165>: test %eax,%eax | |
0xbb940c8c <+167>: mov -0x2c(%ebp),%edx | |
0xbb940c8f <+170>: je 0xbb940c30 <_gethtent+75> | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb940c91 <+172>: movb $0x0,(%eax) | |
0xbb940c94 <+175>: add $0x1,%eax | |
0xbb940c97 <+178>: mov %eax,-0x24(%ebp) | |
0xbb940c9a <+181>: mov -0x20(%ebp),%eax | |
0xbb940c9d <+184>: mov %eax,0x8(%esp) | |
0xbb940ca1 <+188>: mov %edx,0x4(%esp) | |
0xbb940ca5 <+192>: movl $0x18,(%esp) | |
0xbb940cac <+199>: mov %edx,-0x2c(%ebp) | |
0xbb940caf <+202>: call 0xbb897e1c <_inet_pton@plt> | |
0xbb940cb4 <+207>: test %eax,%eax | |
0xbb940cb6 <+209>: mov -0x2c(%ebp),%edx | |
0xbb940cb9 <+212>: jle 0xbb940db6 <_gethtent+465> | |
0xbb940cbf <+218>: mov $0x10,%edx | |
0xbb940cc4 <+223>: mov $0x18,%ecx | |
0xbb940cc9 <+228>: mov 0xd4c0(%ebx),%eax | |
0xbb940ccf <+234>: test %eax,%eax | |
0xbb940cd1 <+236>: jne 0xbb940c28 <_gethtent+67> | |
0xbb940cd7 <+242>: mov 0xd4c4(%ebx),%eax | |
0xbb940cdd <+248>: test %eax,%eax | |
0xbb940cdf <+250>: je 0xbb940ce9 <_gethtent+260> | |
0xbb940ce1 <+252>: cmp %eax,%edx | |
0xbb940ce3 <+254>: jne 0xbb940c30 <_gethtent+75> | |
0xbb940ce9 <+260>: mov -0x20(%ebp),%eax | |
0xbb940cec <+263>: mov %eax,0xd4cc(%ebx) | |
0xbb940cf2 <+269>: movl $0x0,0xd4d0(%ebx) | |
0xbb940cfc <+279>: lea 0xd4cc(%ebx),%eax | |
0xbb940d02 <+285>: mov %eax,0xd4c8(%ebx) | |
0xbb940d08 <+291>: mov %edx,0xd4c4(%ebx) | |
0xbb940d0e <+297>: mov %ecx,0xd4c0(%ebx) | |
0xbb940d14 <+303>: mov -0x24(%ebp),%eax | |
0xbb940d17 <+306>: jmp 0xbb940d1c <_gethtent+311> | |
0xbb940d19 <+308>: add $0x1,%eax | |
0xbb940d1c <+311>: movzbl (%eax),%edx | |
0xbb940d1f <+314>: cmp $0x20,%dl | |
0xbb940d22 <+317>: je 0xbb940d19 <_gethtent+308> | |
0xbb940d24 <+319>: cmp $0x9,%dl | |
0xbb940d27 <+322>: je 0xbb940d19 <_gethtent+308> | |
0xbb940d29 <+324>: mov %eax,0xd4b8(%ebx) | |
0xbb940d2f <+330>: lea 0xd56c(%ebx),%esi | |
0xbb940d35 <+336>: mov %esi,0xd4bc(%ebx) | |
0xbb940d3b <+342>: mov -0x1c(%ebp),%edx | |
0xbb940d3e <+345>: mov %edx,0x4(%esp) | |
0xbb940d42 <+349>: mov %eax,(%esp) | |
0xbb940d45 <+352>: call 0xbb897b4c <strpbrk@plt> | |
0xbb940d4a <+357>: test %eax,%eax | |
0xbb940d4c <+359>: je 0xbb940e2a <_gethtent+581> | |
0xbb940d52 <+365>: movb $0x0,(%eax) | |
0xbb940d55 <+368>: mov %eax,%edx | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb940d57 <+370>: add $0x1,%edx | |
0xbb940d5a <+373>: je 0xbb940e2a <_gethtent+581> | |
0xbb940d60 <+379>: movzbl 0x1(%eax),%eax | |
0xbb940d64 <+383>: test %al,%al | |
0xbb940d66 <+385>: je 0xbb940e2a <_gethtent+581> | |
0xbb940d6c <+391>: lea 0xd5f4(%ebx),%edi | |
0xbb940d72 <+397>: jmp 0xbb940dad <_gethtent+456> | |
0xbb940d74 <+399>: cmp $0x9,%al | |
0xbb940d76 <+401>: je 0xbb940db1 <_gethtent+460> | |
0xbb940d78 <+403>: cmp %edi,%esi | |
0xbb940d7a <+405>: jae 0xbb940d81 <_gethtent+412> | |
0xbb940d7c <+407>: mov %edx,(%esi) | |
0xbb940d7e <+409>: add $0x4,%esi | |
0xbb940d81 <+412>: mov -0x1c(%ebp),%eax | |
0xbb940d84 <+415>: mov %eax,0x4(%esp) | |
0xbb940d88 <+419>: mov %edx,(%esp) | |
0xbb940d8b <+422>: call 0xbb897b4c <strpbrk@plt> | |
0xbb940d90 <+427>: test %eax,%eax | |
0xbb940d92 <+429>: je 0xbb940e2a <_gethtent+581> | |
0xbb940d98 <+435>: movb $0x0,(%eax) | |
0xbb940d9b <+438>: lea 0x1(%eax),%edx | |
0xbb940d9e <+441>: test %edx,%edx | |
0xbb940da0 <+443>: je 0xbb940e2a <_gethtent+581> | |
0xbb940da6 <+449>: movzbl (%edx),%eax | |
0xbb940da9 <+452>: test %al,%al | |
0xbb940dab <+454>: je 0xbb940e2a <_gethtent+581> | |
0xbb940dad <+456>: cmp $0x20,%al | |
0xbb940daf <+458>: jne 0xbb940d74 <_gethtent+399> | |
0xbb940db1 <+460>: add $0x1,%edx | |
0xbb940db4 <+463>: jmp 0xbb940d9e <_gethtent+441> | |
0xbb940db6 <+465>: mov -0x20(%ebp),%eax | |
0xbb940db9 <+468>: mov %eax,0x8(%esp) | |
0xbb940dbd <+472>: mov %edx,0x4(%esp) | |
0xbb940dc1 <+476>: movl $0x2,(%esp) | |
0xbb940dc8 <+483>: call 0xbb897e1c <_inet_pton@plt> | |
0xbb940dcd <+488>: test %eax,%eax | |
0xbb940dcf <+490>: jle 0xbb940c30 <_gethtent+75> | |
0xbb940dd5 <+496>: call 0xbb89525c <__res_get_state@plt> | |
0xbb940dda <+501>: mov %eax,-0x28(%ebp) | |
0xbb940ddd <+504>: test %eax,%eax | |
0xbb940ddf <+506>: je 0xbb940e97 <_gethtent+690> | |
0xbb940de5 <+512>: testb $0x20,0x9(%eax) | |
0xbb940de9 <+516>: jne 0xbb940e7e <_gethtent+665> | |
0xbb940def <+522>: mov $0x4,%edx | |
0xbb940df4 <+527>: mov $0x2,%ecx | |
0xbb940df9 <+532>: mov -0x28(%ebp),%eax | |
0xbb940dfc <+535>: mov %eax,(%esp) | |
0xbb940dff <+538>: mov %edx,-0x2c(%ebp) | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb940e02 <+541>: mov %ecx,-0x30(%ebp) | |
0xbb940e05 <+544>: call 0xbb8947ac <__res_put_state@plt> | |
0xbb940e0a <+549>: mov -0x2c(%ebp),%edx | |
0xbb940e0d <+552>: mov -0x30(%ebp),%ecx | |
0xbb940e10 <+555>: jmp 0xbb940cc9 <_gethtent+228> | |
0xbb940e15 <+560>: call 0xbb896b0c <__h_errno@plt> | |
0xbb940e1a <+565>: movl $0x1,(%eax) | |
0xbb940e20 <+571>: xor %eax,%eax | |
0xbb940e22 <+573>: add $0x3c,%esp | |
0xbb940e25 <+576>: pop %ebx | |
0xbb940e26 <+577>: pop %esi | |
0xbb940e27 <+578>: pop %edi | |
0xbb940e28 <+579>: pop %ebp | |
0xbb940e29 <+580>: ret | |
0xbb940e2a <+581>: movl $0x0,(%esi) | |
0xbb940e30 <+587>: call 0xbb896b0c <__h_errno@plt> | |
0xbb940e35 <+592>: movl $0x0,(%eax) | |
0xbb940e3b <+598>: lea 0xd4b8(%ebx),%eax | |
0xbb940e41 <+604>: add $0x3c,%esp | |
0xbb940e44 <+607>: pop %ebx | |
0xbb940e45 <+608>: pop %esi | |
0xbb940e46 <+609>: pop %edi | |
0xbb940e47 <+610>: pop %ebp | |
0xbb940e48 <+611>: ret | |
0xbb940e49 <+612>: lea -0x15dc2(%ebx),%eax | |
0xbb940e4f <+618>: mov %eax,0x4(%esp) | |
0xbb940e53 <+622>: lea -0xaccd(%ebx),%eax | |
0xbb940e59 <+628>: mov %eax,(%esp) | |
0xbb940e5c <+631>: call 0xbb895b5c <fopen@plt> | |
0xbb940e61 <+636>: mov %eax,0xf8f0(%ebx) | |
0xbb940e67 <+642>: test %eax,%eax | |
0xbb940e69 <+644>: jne 0xbb940c08 <_gethtent+35> | |
0xbb940e6f <+650>: call 0xbb896b0c <__h_errno@plt> | |
0xbb940e74 <+655>: movl $0xffffffff,(%eax) | |
0xbb940e7a <+661>: xor %eax,%eax | |
0xbb940e7c <+663>: jmp 0xbb940e22 <_gethtent+573> | |
0xbb940e7e <+665>: mov -0x20(%ebp),%edx | |
0xbb940e81 <+668>: mov %edx,%eax | |
0xbb940e83 <+670>: call 0xbb93f240 | |
0xbb940e88 <+675>: mov $0x10,%edx | |
0xbb940e8d <+680>: mov $0x18,%ecx | |
0xbb940e92 <+685>: jmp 0xbb940df9 <_gethtent+532> | |
0xbb940e97 <+690>: xor %eax,%eax | |
0xbb940e99 <+692>: jmp 0xbb940e22 <_gethtent+573> | |
End of assembler dump. | |
(gdb) f 4 | |
#4 0xbb940eee in _gethtbyaddr () from /usr/lib/libc.so.12 | |
(gdb) info registers | |
eax 0xbb996da4 -1147572828 | |
ecx 0x1 1 | |
edx 0x0 0 | |
ebx 0xbb9934f4 -1147587340 | |
esp 0xb9efdfec 0xb9efdfec | |
ebp 0xb9efe024 0xb9efe024 | |
esi 0x2 2 | |
edi 0xbb6d6df8 -1150456328 | |
eip 0xbb940eee 0xbb940eee <_gethtbyaddr+83> | |
eflags 0x210202 [ IF RF ID ] | |
cs 0x17 23 | |
ss 0x1f 31 | |
ds 0x1f 31 | |
es 0x1f 31 | |
fs *value not available* | |
gs *value not available* | |
(gdb) disas | |
Dump of assembler code for function _gethtbyaddr: | |
0xbb940e9b <+0>: push %ebp | |
0xbb940e9c <+1>: mov %esp,%ebp | |
0xbb940e9e <+3>: push %edi | |
0xbb940e9f <+4>: push %esi | |
0xbb940ea0 <+5>: push %ebx | |
0xbb940ea1 <+6>: sub $0x2c,%esp | |
0xbb940ea4 <+9>: call 0xbb940ea9 <_gethtbyaddr+14> | |
0xbb940ea9 <+14>: pop %ebx | |
0xbb940eaa <+15>: add $0x5264b,%ebx | |
0xbb940eb0 <+21>: mov 0x10(%ebp),%esi | |
0xbb940eb3 <+24>: mov 0x8(%ebp),%ecx | |
0xbb940eb6 <+27>: test %ecx,%ecx | |
0xbb940eb8 <+29>: je 0xbb940f50 <_gethtbyaddr+181> | |
0xbb940ebe <+35>: mov (%esi),%eax | |
0xbb940ec0 <+37>: mov %eax,-0x24(%ebp) | |
0xbb940ec3 <+40>: mov 0x4(%esi),%edx | |
0xbb940ec6 <+43>: mov %edx,-0x20(%ebp) | |
0xbb940ec9 <+46>: mov 0x8(%esi),%esi | |
0xbb940ecc <+49>: mov %esi,-0x1c(%ebp) | |
0xbb940ecf <+52>: mov %edx,0xd4c4(%ebx) | |
0xbb940ed5 <+58>: mov %esi,0xd4c0(%ebx) | |
0xbb940edb <+64>: mov 0xf8ec(%ebx),%eax | |
0xbb940ee1 <+70>: mov %eax,(%esp) | |
0xbb940ee4 <+73>: call 0xbb8975ec <_sethtent@plt> | |
0xbb940ee9 <+78>: call 0xbb895c4c <_gethtent@plt> | |
=> 0xbb940eee <+83>: test %eax,%eax | |
0xbb940ef0 <+85>: je 0xbb940f2a <_gethtbyaddr+143> | |
0xbb940ef2 <+87>: mov -0x1c(%ebp),%edx | |
0xbb940ef5 <+90>: cmp %edx,0x8(%eax) | |
0xbb940ef8 <+93>: jne 0xbb940ee9 <_gethtbyaddr+78> | |
0xbb940efa <+95>: mov 0x10(%eax),%edx | |
0xbb940efd <+98>: mov (%edx),%esi | |
0xbb940eff <+100>: mov -0x20(%ebp),%edx | |
0xbb940f02 <+103>: cmp %edx,%edx | |
0xbb940f04 <+105>: mov -0x24(%ebp),%edi | |
0xbb940f07 <+108>: mov %edx,%ecx | |
0xbb940f09 <+110>: repz cmpsb %es:(%edi),%ds:(%esi) | |
0xbb940f0b <+112>: jne 0xbb940ee9 <_gethtbyaddr+78> | |
0xbb940f0d <+114>: mov %eax,-0x28(%ebp) | |
0xbb940f10 <+117>: call 0xbb89736c <_endhtent@plt> | |
0xbb940f15 <+122>: mov -0x28(%ebp),%eax | |
0xbb940f18 <+125>: mov 0x8(%ebp),%edx | |
0xbb940f1b <+128>: mov %eax,(%edx) | |
0xbb940f1d <+130>: mov $0x1,%eax | |
0xbb940f22 <+135>: add $0x2c,%esp | |
0xbb940f25 <+138>: pop %ebx | |
0xbb940f26 <+139>: pop %esi | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb940f27 <+140>: pop %edi | |
0xbb940f28 <+141>: pop %ebp | |
0xbb940f29 <+142>: ret | |
0xbb940f2a <+143>: call 0xbb89736c <_endhtent@plt> | |
0xbb940f2f <+148>: mov 0x8(%ebp),%eax | |
0xbb940f32 <+151>: movl $0x0,(%eax) | |
0xbb940f38 <+157>: call 0xbb896b0c <__h_errno@plt> | |
0xbb940f3d <+162>: movl $0x1,(%eax) | |
0xbb940f43 <+168>: mov $0x4,%eax | |
0xbb940f48 <+173>: add $0x2c,%esp | |
0xbb940f4b <+176>: pop %ebx | |
0xbb940f4c <+177>: pop %esi | |
0xbb940f4d <+178>: pop %edi | |
0xbb940f4e <+179>: pop %ebp | |
0xbb940f4f <+180>: ret | |
0xbb940f50 <+181>: lea -0xfb5b(%ebx),%eax | |
0xbb940f56 <+187>: mov %eax,0xc(%esp) | |
0xbb940f5a <+191>: lea -0xab68(%ebx),%eax | |
0xbb940f60 <+197>: mov %eax,0x8(%esp) | |
0xbb940f64 <+201>: movl $0x3b3,0x4(%esp) | |
0xbb940f6c <+209>: lea -0xac88(%ebx),%eax | |
0xbb940f72 <+215>: mov %eax,(%esp) | |
0xbb940f75 <+218>: call 0xbb8957ec <__diagassert13@plt> | |
0xbb940f7a <+223>: jmp 0xbb940ebe <_gethtbyaddr+35> | |
End of assembler dump. | |
(gdb) f 5 | |
#5 0xbb95cd68 in nsdispatch () from /usr/lib/libc.so.12 | |
(gdb) info registers | |
eax 0xbb996da4 -1147572828 | |
ecx 0x1 1 | |
edx 0x0 0 | |
ebx 0xbb9934f4 -1147587340 | |
esp 0xb9efe02c 0xb9efe02c | |
ebp 0xb9efe0d4 0xb9efe0d4 | |
esi 0xbb99212c -1147592404 | |
edi 0xbb6d6df8 -1150456328 | |
eip 0xbb95cd68 0xbb95cd68 <nsdispatch+377> | |
eflags 0x210202 [ IF RF ID ] | |
cs 0x17 23 | |
ss 0x1f 31 | |
ds 0x1f 31 | |
es 0x1f 31 | |
fs *value not available* | |
gs *value not available* | |
(gdb) disas | |
Dump of assembler code for function nsdispatch: | |
0xbb95cbef <+0>: push %ebp | |
0xbb95cbf0 <+1>: mov %esp,%ebp | |
0xbb95cbf2 <+3>: push %edi | |
0xbb95cbf3 <+4>: push %esi | |
0xbb95cbf4 <+5>: push %ebx | |
0xbb95cbf5 <+6>: sub $0x9c,%esp | |
0xbb95cbfb <+12>: call 0xbb95cc00 <nsdispatch+17> | |
0xbb95cc00 <+17>: pop %ebx | |
0xbb95cc01 <+18>: add $0x368f4,%ebx | |
0xbb95cc07 <+24>: mov 0x10(%ebp),%eax | |
0xbb95cc0a <+27>: test %eax,%eax | |
0xbb95cc0c <+29>: je 0xbb95cfb6 <nsdispatch+967> | |
0xbb95cc12 <+35>: mov 0x14(%ebp),%edi | |
0xbb95cc15 <+38>: test %edi,%edi | |
0xbb95cc17 <+40>: je 0xbb95cfe5 <nsdispatch+1014> | |
0xbb95cc1d <+46>: mov 0x18(%ebp),%esi | |
0xbb95cc20 <+49>: test %esi,%esi | |
0xbb95cc22 <+51>: je 0xbb95cf87 <nsdispatch+920> | |
0xbb95cc28 <+57>: mov 0x10(%ebp),%ecx | |
0xbb95cc2b <+60>: test %ecx,%ecx | |
0xbb95cc2d <+62>: je 0xbb95ce50 <nsdispatch+609> | |
0xbb95cc33 <+68>: mov 0x14(%ebp),%edx | |
0xbb95cc36 <+71>: test %edx,%edx | |
0xbb95cc38 <+73>: je 0xbb95ce50 <nsdispatch+609> | |
0xbb95cc3e <+79>: mov 0x18(%ebp),%eax | |
0xbb95cc41 <+82>: test %eax,%eax | |
0xbb95cc43 <+84>: je 0xbb95ce50 <nsdispatch+609> | |
0xbb95cc49 <+90>: mov -0x1dc(%ebx),%eax | |
0xbb95cc4f <+96>: mov (%eax),%edi | |
0xbb95cc51 <+98>: test %edi,%edi | |
0xbb95cc53 <+100>: jne 0xbb95ce62 <nsdispatch+627> | |
0xbb95cc59 <+106>: mov 0x10a50(%ebx),%eax | |
0xbb95cc5f <+112>: lea 0x1(%eax),%edx | |
0xbb95cc62 <+115>: mov %edx,0x10a50(%ebx) | |
0xbb95cc68 <+121>: test %eax,%eax | |
0xbb95cc6a <+123>: je 0xbb95cf30 <nsdispatch+833> | |
0xbb95cc70 <+129>: lea 0x302c(%ebx),%edx | |
0xbb95cc76 <+135>: mov %edx,-0x7c(%ebp) | |
0xbb95cc79 <+138>: mov %edx,(%esp) | |
0xbb95cc7c <+141>: call 0xbb894b4c <__libc_rwlock_rdlock@plt> | |
0xbb95cc81 <+146>: mov 0x10(%ebp),%ecx | |
0xbb95cc84 <+149>: mov %ecx,-0x30(%ebp) | |
0xbb95cc87 <+152>: lea -0x36fd6(%ebx),%eax | |
0xbb95cc8d <+158>: mov %eax,0x10(%esp) | |
0xbb95cc91 <+162>: movl $0xc,0xc(%esp) | |
0xbb95cc99 <+170>: mov 0x10a48(%ebx),%eax | |
0xbb95cc9f <+176>: mov %eax,0x8(%esp) | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb95cca3 <+180>: mov 0x10a4c(%ebx),%eax | |
0xbb95cca9 <+186>: mov %eax,0x4(%esp) | |
0xbb95ccad <+190>: lea -0x30(%ebp),%eax | |
0xbb95ccb0 <+193>: mov %eax,(%esp) | |
0xbb95ccb3 <+196>: call 0xbb895afc <bsearch@plt> | |
0xbb95ccb8 <+201>: test %eax,%eax | |
0xbb95ccba <+203>: je 0xbb95cf56 <nsdispatch+871> | |
0xbb95ccc0 <+209>: mov 0x4(%eax),%edx | |
0xbb95ccc3 <+212>: mov %edx,-0x64(%ebp) | |
0xbb95ccc6 <+215>: mov 0x8(%eax),%eax | |
0xbb95ccc9 <+218>: mov %eax,-0x68(%ebp) | |
0xbb95cccc <+221>: test %eax,%eax | |
0xbb95ccce <+223>: jle 0xbb95d014 <nsdispatch+1061> | |
0xbb95ccd4 <+229>: movl $0x0,-0x60(%ebp) | |
0xbb95ccdb <+236>: lea 0x1c(%ebp),%eax | |
0xbb95ccde <+239>: mov %eax,-0x6c(%ebp) | |
0xbb95cce1 <+242>: lea -0x37005(%ebx),%edx | |
0xbb95cce7 <+248>: mov %edx,-0x70(%ebp) | |
0xbb95ccea <+251>: lea -0x54(%ebp),%ecx | |
0xbb95cced <+254>: mov %ecx,-0x74(%ebp) | |
0xbb95ccf0 <+257>: lea -0x36fa7(%ebx),%eax | |
0xbb95ccf6 <+263>: mov %eax,-0x78(%ebp) | |
0xbb95ccf9 <+266>: mov -0x60(%ebp),%edx | |
0xbb95ccfc <+269>: mov -0x64(%ebp),%ecx | |
0xbb95ccff <+272>: mov (%ecx,%edx,8),%edi | |
0xbb95cd02 <+275>: mov 0xc(%ebp),%ecx | |
0xbb95cd05 <+278>: test %ecx,%ecx | |
0xbb95cd07 <+280>: je 0xbb95cdc7 <nsdispatch+472> | |
0xbb95cd0d <+286>: mov 0xc(%ebp),%edx | |
0xbb95cd10 <+289>: mov (%edx),%eax | |
0xbb95cd12 <+291>: test %eax,%eax | |
0xbb95cd14 <+293>: je 0xbb95cdc7 <nsdispatch+472> | |
0xbb95cd1a <+299>: mov %edx,%esi | |
0xbb95cd1c <+301>: add $0xc,%esi | |
0xbb95cd1f <+304>: mov %edx,-0x5c(%ebp) | |
0xbb95cd22 <+307>: jmp 0xbb95cd34 <nsdispatch+325> | |
0xbb95cd24 <+309>: mov %esi,-0x5c(%ebp) | |
0xbb95cd27 <+312>: mov (%esi),%eax | |
0xbb95cd29 <+314>: add $0xc,%esi | |
0xbb95cd2c <+317>: test %eax,%eax | |
0xbb95cd2e <+319>: je 0xbb95cdc7 <nsdispatch+472> | |
0xbb95cd34 <+325>: mov %eax,0x4(%esp) | |
0xbb95cd38 <+329>: mov %edi,(%esp) | |
0xbb95cd3b <+332>: call 0xbb893ffc <_strcasecmp@plt> | |
0xbb95cd40 <+337>: test %eax,%eax | |
0xbb95cd42 <+339>: jne 0xbb95cd24 <nsdispatch+309> | |
0xbb95cd44 <+341>: mov -0x5c(%ebp),%ecx | |
0xbb95cd47 <+344>: mov 0x8(%ecx),%edx | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb95cd4a <+347>: mov 0x4(%ecx),%eax | |
0xbb95cd4d <+350>: test %eax,%eax | |
0xbb95cd4f <+352>: je 0xbb95ce49 <nsdispatch+602> | |
0xbb95cd55 <+358>: mov -0x6c(%ebp),%ecx | |
0xbb95cd58 <+361>: mov %ecx,0x8(%esp) | |
0xbb95cd5c <+365>: mov %edx,0x4(%esp) | |
0xbb95cd60 <+369>: mov 0x8(%ebp),%edx | |
0xbb95cd63 <+372>: mov %edx,(%esp) | |
0xbb95cd66 <+375>: call *%eax | |
=> 0xbb95cd68 <+377>: mov 0x18(%ebp),%ecx | |
0xbb95cd6b <+380>: testb $0x1,0x5(%ecx) | |
0xbb95cd6f <+384>: jne 0xbb95cd7d <nsdispatch+398> | |
0xbb95cd71 <+386>: mov -0x60(%ebp),%edx | |
0xbb95cd74 <+389>: mov -0x64(%ebp),%ecx | |
0xbb95cd77 <+392>: test %eax,0x4(%ecx,%edx,8) | |
0xbb95cd7b <+396>: jne 0xbb95cd8d <nsdispatch+414> | |
0xbb95cd7d <+398>: addl $0x1,-0x60(%ebp) | |
0xbb95cd81 <+402>: mov -0x68(%ebp),%edx | |
0xbb95cd84 <+405>: cmp %edx,-0x60(%ebp) | |
0xbb95cd87 <+408>: jl 0xbb95ccf9 <nsdispatch+266> | |
0xbb95cd8d <+414>: movzbl %al,%esi | |
0xbb95cd90 <+417>: mov -0x7c(%ebp),%ecx | |
0xbb95cd93 <+420>: mov %ecx,(%esp) | |
0xbb95cd96 <+423>: call 0xbb897d1c <__libc_rwlock_unlock@plt> | |
0xbb95cd9b <+428>: mov -0x1dc(%ebx),%eax | |
0xbb95cda1 <+434>: mov (%eax),%eax | |
0xbb95cda3 <+436>: test %eax,%eax | |
0xbb95cda5 <+438>: jne 0xbb95cf03 <nsdispatch+788> | |
0xbb95cdab <+444>: subl $0x1,0x10a50(%ebx) | |
0xbb95cdb2 <+451>: test %esi,%esi | |
0xbb95cdb4 <+453>: jne 0xbb95cdba <nsdispatch+459> | |
0xbb95cdb6 <+455>: mov $0x4,%si | |
0xbb95cdba <+459>: mov %esi,%eax | |
0xbb95cdbc <+461>: add $0x9c,%esp | |
0xbb95cdc2 <+467>: pop %ebx | |
0xbb95cdc3 <+468>: pop %esi | |
0xbb95cdc4 <+469>: pop %edi | |
0xbb95cdc5 <+470>: pop %ebp | |
0xbb95cdc6 <+471>: ret | |
0xbb95cdc7 <+472>: mov %edi,-0x54(%ebp) | |
0xbb95cdca <+475>: mov -0x70(%ebp),%eax | |
0xbb95cdcd <+478>: mov %eax,0x10(%esp) | |
0xbb95cdd1 <+482>: movl $0x14,0xc(%esp) | |
0xbb95cdd9 <+490>: mov 0x10a58(%ebx),%eax | |
0xbb95cddf <+496>: mov %eax,0x8(%esp) | |
0xbb95cde3 <+500>: mov 0x10a54(%ebx),%eax | |
0xbb95cde9 <+506>: mov %eax,0x4(%esp) | |
0xbb95cded <+510>: mov -0x74(%ebp),%edx | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb95cdf0 <+513>: mov %edx,(%esp) | |
0xbb95cdf3 <+516>: call 0xbb895afc <bsearch@plt> | |
0xbb95cdf8 <+521>: test %eax,%eax | |
0xbb95cdfa <+523>: je 0xbb95ce49 <nsdispatch+602> | |
0xbb95cdfc <+525>: mov 0x4(%eax),%edx | |
0xbb95cdff <+528>: test %edx,%edx | |
0xbb95ce01 <+530>: je 0xbb95ce49 <nsdispatch+602> | |
0xbb95ce03 <+532>: mov 0x10(%ebp),%ecx | |
0xbb95ce06 <+535>: mov %ecx,-0x40(%ebp) | |
0xbb95ce09 <+538>: mov 0x14(%ebp),%edx | |
0xbb95ce0c <+541>: mov %edx,-0x3c(%ebp) | |
0xbb95ce0f <+544>: mov -0x78(%ebp),%ecx | |
0xbb95ce12 <+547>: mov %ecx,0x10(%esp) | |
0xbb95ce16 <+551>: movl $0x10,0xc(%esp) | |
0xbb95ce1e <+559>: mov 0xc(%eax),%edx | |
0xbb95ce21 <+562>: mov %edx,0x8(%esp) | |
0xbb95ce25 <+566>: mov 0x8(%eax),%eax | |
0xbb95ce28 <+569>: mov %eax,0x4(%esp) | |
0xbb95ce2c <+573>: lea -0x40(%ebp),%eax | |
0xbb95ce2f <+576>: mov %eax,(%esp) | |
0xbb95ce32 <+579>: call 0xbb895afc <bsearch@plt> | |
0xbb95ce37 <+584>: test %eax,%eax | |
0xbb95ce39 <+586>: je 0xbb95ce49 <nsdispatch+602> | |
0xbb95ce3b <+588>: mov 0xc(%eax),%edx | |
0xbb95ce3e <+591>: mov 0x8(%eax),%eax | |
0xbb95ce41 <+594>: test %eax,%eax | |
0xbb95ce43 <+596>: jne 0xbb95cd55 <nsdispatch+358> | |
0xbb95ce49 <+602>: xor %eax,%eax | |
0xbb95ce4b <+604>: jmp 0xbb95cd7d <nsdispatch+398> | |
0xbb95ce50 <+609>: mov $0x2,%esi | |
0xbb95ce55 <+614>: mov %esi,%eax | |
0xbb95ce57 <+616>: add $0x9c,%esp | |
0xbb95ce5d <+622>: pop %ebx | |
0xbb95ce5e <+623>: pop %esi | |
0xbb95ce5f <+624>: pop %edi | |
0xbb95ce60 <+625>: pop %ebp | |
0xbb95ce61 <+626>: ret | |
0xbb95ce62 <+627>: call 0xbb896a8c <__libc_thr_self@plt> | |
0xbb95ce67 <+632>: mov %eax,-0x1c(%ebp) | |
0xbb95ce6a <+635>: lea 0x300c(%ebx),%edi | |
0xbb95ce70 <+641>: mov %edi,(%esp) | |
0xbb95ce73 <+644>: call 0xbb895ccc <__libc_mutex_lock@plt> | |
0xbb95ce78 <+649>: mov 0x10a44(%ebx),%edx | |
0xbb95ce7e <+655>: test %edx,%edx | |
0xbb95ce80 <+657>: je 0xbb95d01b <nsdispatch+1068> | |
0xbb95ce86 <+663>: mov -0x1c(%ebp),%eax | |
0xbb95ce89 <+666>: cmp %eax,0x8(%edx) | |
0xbb95ce8c <+669>: je 0xbb95d041 <nsdispatch+1106> | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb95ce92 <+675>: mov %edx,%esi | |
0xbb95ce94 <+677>: jmp 0xbb95ce9b <nsdispatch+684> | |
0xbb95ce96 <+679>: cmp %eax,0x8(%esi) | |
0xbb95ce99 <+682>: je 0xbb95cea2 <nsdispatch+691> | |
0xbb95ce9b <+684>: mov (%esi),%esi | |
0xbb95ce9d <+686>: test %esi,%esi | |
0xbb95ce9f <+688>: nop | |
0xbb95cea0 <+689>: jne 0xbb95ce96 <nsdispatch+679> | |
0xbb95cea2 <+691>: mov %edx,-0x24(%ebp) | |
0xbb95cea5 <+694>: lea -0x24(%ebp),%eax | |
0xbb95cea8 <+697>: mov %eax,0x4(%edx) | |
0xbb95ceab <+700>: mov %eax,0x10a44(%ebx) | |
0xbb95ceb1 <+706>: lea 0x10a44(%ebx),%eax | |
0xbb95ceb7 <+712>: mov %eax,-0x20(%ebp) | |
0xbb95ceba <+715>: mov %edi,(%esp) | |
0xbb95cebd <+718>: call 0xbb8967ac <__libc_mutex_unlock@plt> | |
0xbb95cec2 <+723>: test %esi,%esi | |
0xbb95cec4 <+725>: jne 0xbb95cc70 <nsdispatch+129> | |
0xbb95ceca <+731>: call 0xbb95c296 | |
0xbb95cecf <+736>: test %eax,%eax | |
0xbb95ced1 <+738>: je 0xbb95cc70 <nsdispatch+129> | |
0xbb95ced7 <+744>: mov %edi,(%esp) | |
0xbb95ceda <+747>: call 0xbb895ccc <__libc_mutex_lock@plt> | |
0xbb95cedf <+752>: mov -0x24(%ebp),%eax | |
0xbb95cee2 <+755>: test %eax,%eax | |
0xbb95cee4 <+757>: je 0xbb95ceec <nsdispatch+765> | |
0xbb95cee6 <+759>: mov -0x20(%ebp),%edx | |
0xbb95cee9 <+762>: mov %edx,0x4(%eax) | |
0xbb95ceec <+765>: mov -0x20(%ebp),%edx | |
0xbb95ceef <+768>: mov %eax,(%edx) | |
0xbb95cef1 <+770>: mov %edi,(%esp) | |
0xbb95cef4 <+773>: call 0xbb8967ac <__libc_mutex_unlock@plt> | |
0xbb95cef9 <+778>: mov $0x2,%esi | |
0xbb95cefe <+783>: jmp 0xbb95cdba <nsdispatch+459> | |
0xbb95cf03 <+788>: lea 0x300c(%ebx),%edi | |
0xbb95cf09 <+794>: mov %edi,(%esp) | |
0xbb95cf0c <+797>: call 0xbb895ccc <__libc_mutex_lock@plt> | |
0xbb95cf11 <+802>: mov -0x24(%ebp),%eax | |
0xbb95cf14 <+805>: test %eax,%eax | |
0xbb95cf16 <+807>: je 0xbb95cf1e <nsdispatch+815> | |
0xbb95cf18 <+809>: mov -0x20(%ebp),%edx | |
0xbb95cf1b <+812>: mov %edx,0x4(%eax) | |
0xbb95cf1e <+815>: mov -0x20(%ebp),%edx | |
0xbb95cf21 <+818>: mov %eax,(%edx) | |
0xbb95cf23 <+820>: mov %edi,(%esp) | |
0xbb95cf26 <+823>: call 0xbb8967ac <__libc_mutex_unlock@plt> | |
0xbb95cf2b <+828>: jmp 0xbb95cdb2 <nsdispatch+451> | |
0xbb95cf30 <+833>: call 0xbb95c296 | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb95cf35 <+838>: test %eax,%eax | |
0xbb95cf37 <+840>: je 0xbb95cc70 <nsdispatch+129> | |
0xbb95cf3d <+846>: subl $0x1,0x10a50(%ebx) | |
0xbb95cf44 <+853>: mov $0x2,%esi | |
0xbb95cf49 <+858>: mov %esi,%eax | |
0xbb95cf4b <+860>: add $0x9c,%esp | |
0xbb95cf51 <+866>: pop %ebx | |
0xbb95cf52 <+867>: pop %esi | |
0xbb95cf53 <+868>: pop %edi | |
0xbb95cf54 <+869>: pop %ebp | |
0xbb95cf55 <+870>: ret | |
0xbb95cf56 <+871>: movl $0x0,-0x68(%ebp) | |
0xbb95cf5d <+878>: mov 0x18(%ebp),%eax | |
0xbb95cf60 <+881>: cmpl $0x0,(%eax) | |
0xbb95cf63 <+884>: je 0xbb95d014 <nsdispatch+1061> | |
0xbb95cf69 <+890>: mov -0x68(%ebp),%eax | |
0xbb95cf6c <+893>: mov 0x18(%ebp),%edx | |
0xbb95cf6f <+896>: add $0x1,%eax | |
0xbb95cf72 <+899>: mov (%edx,%eax,8),%esi | |
0xbb95cf75 <+902>: test %esi,%esi | |
0xbb95cf77 <+904>: jne 0xbb95cf6f <nsdispatch+896> | |
0xbb95cf79 <+906>: mov %eax,-0x68(%ebp) | |
0xbb95cf7c <+909>: mov 0x18(%ebp),%ecx | |
0xbb95cf7f <+912>: mov %ecx,-0x64(%ebp) | |
0xbb95cf82 <+915>: jmp 0xbb95ccd4 <nsdispatch+229> | |
0xbb95cf87 <+920>: lea -0x74d3(%ebx),%eax | |
0xbb95cf8d <+926>: mov %eax,0xc(%esp) | |
0xbb95cf91 <+930>: lea -0x749d(%ebx),%eax | |
0xbb95cf97 <+936>: mov %eax,0x8(%esp) | |
0xbb95cf9b <+940>: movl $0x262,0x4(%esp) | |
0xbb95cfa3 <+948>: lea -0x74c0(%ebx),%eax | |
0xbb95cfa9 <+954>: mov %eax,(%esp) | |
0xbb95cfac <+957>: call 0xbb8957ec <__diagassert13@plt> | |
0xbb95cfb1 <+962>: jmp 0xbb95cc28 <nsdispatch+57> | |
0xbb95cfb6 <+967>: lea -0x74f3(%ebx),%eax | |
0xbb95cfbc <+973>: mov %eax,0xc(%esp) | |
0xbb95cfc0 <+977>: lea -0x749d(%ebx),%eax | |
0xbb95cfc6 <+983>: mov %eax,0x8(%esp) | |
0xbb95cfca <+987>: movl $0x260,0x4(%esp) | |
0xbb95cfd2 <+995>: lea -0x74c0(%ebx),%eax | |
0xbb95cfd8 <+1001>: mov %eax,(%esp) | |
0xbb95cfdb <+1004>: call 0xbb8957ec <__diagassert13@plt> | |
0xbb95cfe0 <+1009>: jmp 0xbb95cc12 <nsdispatch+35> | |
0xbb95cfe5 <+1014>: lea -0x74e2(%ebx),%eax | |
0xbb95cfeb <+1020>: mov %eax,0xc(%esp) | |
0xbb95cfef <+1024>: lea -0x749d(%ebx),%eax | |
0xbb95cff5 <+1030>: mov %eax,0x8(%esp) | |
0xbb95cff9 <+1034>: movl $0x261,0x4(%esp) | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb95d001 <+1042>: lea -0x74c0(%ebx),%eax | |
0xbb95d007 <+1048>: mov %eax,(%esp) | |
0xbb95d00a <+1051>: call 0xbb8957ec <__diagassert13@plt> | |
0xbb95d00f <+1056>: jmp 0xbb95cc1d <nsdispatch+46> | |
0xbb95d014 <+1061>: xor %eax,%eax | |
0xbb95d016 <+1063>: jmp 0xbb95cd8d <nsdispatch+414> | |
0xbb95d01b <+1068>: movl $0x0,-0x24(%ebp) | |
0xbb95d022 <+1075>: lea -0x24(%ebp),%eax | |
0xbb95d025 <+1078>: mov %eax,0x10a44(%ebx) | |
0xbb95d02b <+1084>: lea 0x10a44(%ebx),%eax | |
0xbb95d031 <+1090>: mov %eax,-0x20(%ebp) | |
0xbb95d034 <+1093>: mov %edi,(%esp) | |
0xbb95d037 <+1096>: call 0xbb8967ac <__libc_mutex_unlock@plt> | |
0xbb95d03c <+1101>: jmp 0xbb95ceca <nsdispatch+731> | |
0xbb95d041 <+1106>: mov %edx,%esi | |
0xbb95d043 <+1108>: jmp 0xbb95cea2 <nsdispatch+691> | |
End of assembler dump. | |
(gdb) f 6 | |
#6 0xbb940ab8 in gethostbyaddr () from /usr/lib/libc.so.12 | |
(gdb) info registers | |
eax 0xbb996da4 -1147572828 | |
ecx 0x1 1 | |
edx 0x0 0 | |
ebx 0xbb9934f4 -1147587340 | |
esp 0xb9efe0dc 0xb9efe0dc | |
ebp 0xb9efe134 0xb9efe134 | |
esi 0x2 2 | |
edi 0x4 4 | |
eip 0xbb940ab8 0xbb940ab8 <gethostbyaddr+298> | |
eflags 0x210202 [ IF RF ID ] | |
cs 0x17 23 | |
ss 0x1f 31 | |
ds 0x1f 31 | |
es 0x1f 31 | |
fs *value not available* | |
gs *value not available* | |
(gdb) disas | |
Dump of assembler code for function gethostbyaddr: | |
0xbb94098e <+0>: push %ebp | |
0xbb94098f <+1>: mov %esp,%ebp | |
0xbb940991 <+3>: push %edi | |
0xbb940992 <+4>: push %esi | |
0xbb940993 <+5>: push %ebx | |
0xbb940994 <+6>: sub $0x4c,%esp | |
0xbb940997 <+9>: call 0xbb94099c <gethostbyaddr+14> | |
0xbb94099c <+14>: pop %ebx | |
0xbb94099d <+15>: add $0x52b58,%ebx | |
0xbb9409a3 <+21>: mov 0x8(%ebp),%edi | |
0xbb9409a6 <+24>: mov 0xc(%ebp),%eax | |
0xbb9409a9 <+27>: mov 0x10(%ebp),%esi | |
0xbb9409ac <+30>: mov %edi,%edx | |
0xbb9409ae <+32>: test %edi,%edi | |
0xbb9409b0 <+34>: je 0xbb940ac7 <gethostbyaddr+313> | |
0xbb9409b6 <+40>: cmp $0x18,%esi | |
0xbb9409b9 <+43>: je 0xbb9409e9 <gethostbyaddr+91> | |
0xbb9409bb <+45>: cmp $0x2,%esi | |
0xbb9409be <+48>: je 0xbb940a53 <gethostbyaddr+197> | |
0xbb9409c4 <+54>: cmp $0x18,%esi | |
0xbb9409c7 <+57>: je 0xbb9409ee <gethostbyaddr+96> | |
0xbb9409c9 <+59>: call 0xbb8978bc <__errno@plt> | |
0xbb9409ce <+64>: movl $0x2f,(%eax) | |
0xbb9409d4 <+70>: call 0xbb896b0c <__h_errno@plt> | |
0xbb9409d9 <+75>: movl $0xffffffff,(%eax) | |
0xbb9409df <+81>: xor %eax,%eax | |
0xbb9409e1 <+83>: add $0x4c,%esp | |
0xbb9409e4 <+86>: pop %ebx | |
0xbb9409e5 <+87>: pop %esi | |
0xbb9409e6 <+88>: pop %edi | |
0xbb9409e7 <+89>: pop %ebp | |
0xbb9409e8 <+90>: ret | |
0xbb9409e9 <+91>: cmp $0x10,%eax | |
0xbb9409ec <+94>: je 0xbb940a17 <gethostbyaddr+137> | |
0xbb9409ee <+96>: mov $0x10,%edi | |
0xbb9409f3 <+101>: cmp %eax,%edi | |
0xbb9409f5 <+103>: je 0xbb940a61 <gethostbyaddr+211> | |
0xbb9409f7 <+105>: call 0xbb8978bc <__errno@plt> | |
0xbb9409fc <+110>: movl $0x16,(%eax) | |
0xbb940a02 <+116>: call 0xbb896b0c <__h_errno@plt> | |
0xbb940a07 <+121>: movl $0xffffffff,(%eax) | |
0xbb940a0d <+127>: xor %eax,%eax | |
0xbb940a0f <+129>: add $0x4c,%esp | |
0xbb940a12 <+132>: pop %ebx | |
0xbb940a13 <+133>: pop %esi | |
0xbb940a14 <+134>: pop %edi | |
0xbb940a15 <+135>: pop %ebp | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb940a16 <+136>: ret | |
0xbb940a17 <+137>: cmpb $0xfe,(%edi) | |
0xbb940a1a <+140>: je 0xbb940b15 <gethostbyaddr+391> | |
0xbb940a20 <+146>: mov (%edi),%ecx | |
0xbb940a22 <+148>: test %ecx,%ecx | |
0xbb940a24 <+150>: jne 0xbb9409ee <gethostbyaddr+96> | |
0xbb940a26 <+152>: mov 0x4(%edi),%ecx | |
0xbb940a29 <+155>: test %ecx,%ecx | |
0xbb940a2b <+157>: jne 0xbb9409ee <gethostbyaddr+96> | |
0xbb940a2d <+159>: mov 0x8(%edi),%ecx | |
0xbb940a30 <+162>: cmp $0xffff0000,%ecx | |
0xbb940a36 <+168>: je 0xbb940a4b <gethostbyaddr+189> | |
0xbb940a38 <+170>: test %ecx,%ecx | |
0xbb940a3a <+172>: jne 0xbb9409ee <gethostbyaddr+96> | |
0xbb940a3c <+174>: mov 0xc(%edi),%ecx | |
0xbb940a3f <+177>: test %ecx,%ecx | |
0xbb940a41 <+179>: je 0xbb9409ee <gethostbyaddr+96> | |
0xbb940a43 <+181>: cmp $0x1000000,%ecx | |
0xbb940a49 <+187>: je 0xbb9409ee <gethostbyaddr+96> | |
0xbb940a4b <+189>: lea 0xc(%edi),%edx | |
0xbb940a4e <+192>: mov $0x4,%eax | |
0xbb940a53 <+197>: mov $0x2,%esi | |
0xbb940a58 <+202>: mov $0x4,%edi | |
0xbb940a5d <+207>: cmp %eax,%edi | |
0xbb940a5f <+209>: jne 0xbb9409f7 <gethostbyaddr+105> | |
0xbb940a61 <+211>: movl $0x0,-0x1c(%ebp) | |
0xbb940a68 <+218>: mov %edx,-0x2c(%ebp) | |
0xbb940a6b <+221>: call 0xbb896b0c <__h_errno@plt> | |
0xbb940a70 <+226>: movl $0xffffffff,(%eax) | |
0xbb940a76 <+232>: mov %esi,0x1c(%esp) | |
0xbb940a7a <+236>: mov %edi,0x18(%esp) | |
0xbb940a7e <+240>: mov -0x2c(%ebp),%edx | |
0xbb940a81 <+243>: mov %edx,0x14(%esp) | |
0xbb940a85 <+247>: lea -0x29f0(%ebx),%eax | |
0xbb940a8b <+253>: mov %eax,0x10(%esp) | |
0xbb940a8f <+257>: lea -0xacdb(%ebx),%eax | |
0xbb940a95 <+263>: mov %eax,0xc(%esp) | |
0xbb940a99 <+267>: lea -0xacc8(%ebx),%eax | |
0xbb940a9f <+273>: mov %eax,0x8(%esp) | |
0xbb940aa3 <+277>: lea -0x13d4(%ebx),%eax | |
0xbb940aa9 <+283>: mov %eax,0x4(%esp) | |
0xbb940aad <+287>: lea -0x1c(%ebp),%eax | |
0xbb940ab0 <+290>: mov %eax,(%esp) | |
0xbb940ab3 <+293>: call 0xbb89602c <_nsdispatch@plt> | |
=> 0xbb940ab8 <+298>: cmp $0x1,%eax | |
0xbb940abb <+301>: je 0xbb940b02 <gethostbyaddr+372> | |
0xbb940abd <+303>: xor %eax,%eax | |
0xbb940abf <+305>: add $0x4c,%esp | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb940ac2 <+308>: pop %ebx | |
0xbb940ac3 <+309>: pop %esi | |
0xbb940ac4 <+310>: pop %edi | |
0xbb940ac5 <+311>: pop %ebp | |
0xbb940ac6 <+312>: ret | |
0xbb940ac7 <+313>: lea -0xbf54(%ebx),%ecx | |
0xbb940acd <+319>: mov %ecx,0xc(%esp) | |
0xbb940ad1 <+323>: lea -0xab40(%ebx),%ecx | |
0xbb940ad7 <+329>: mov %ecx,0x8(%esp) | |
0xbb940adb <+333>: movl $0x2a4,0x4(%esp) | |
0xbb940ae3 <+341>: lea -0xac88(%ebx),%ecx | |
0xbb940ae9 <+347>: mov %ecx,(%esp) | |
0xbb940aec <+350>: mov %eax,-0x30(%ebp) | |
0xbb940aef <+353>: mov %edi,-0x2c(%ebp) | |
0xbb940af2 <+356>: call 0xbb8957ec <__diagassert13@plt> | |
0xbb940af7 <+361>: mov -0x2c(%ebp),%edx | |
0xbb940afa <+364>: mov -0x30(%ebp),%eax | |
0xbb940afd <+367>: jmp 0xbb9409b6 <gethostbyaddr+40> | |
0xbb940b02 <+372>: call 0xbb896b0c <__h_errno@plt> | |
0xbb940b07 <+377>: movl $0x0,(%eax) | |
0xbb940b0d <+383>: mov -0x1c(%ebp),%eax | |
0xbb940b10 <+386>: jmp 0xbb9409e1 <gethostbyaddr+83> | |
0xbb940b15 <+391>: movzbl 0x1(%edi),%ecx | |
0xbb940b19 <+395>: and $0xc0,%ecx | |
0xbb940b1f <+401>: cmp $0x80,%ecx | |
0xbb940b25 <+407>: je 0xbb940b33 <gethostbyaddr+421> | |
0xbb940b27 <+409>: cmp $0xc0,%ecx | |
0xbb940b2d <+415>: jne 0xbb940a20 <gethostbyaddr+146> | |
0xbb940b33 <+421>: call 0xbb896b0c <__h_errno@plt> | |
0xbb940b38 <+426>: movl $0x1,(%eax) | |
0xbb940b3e <+432>: xor %eax,%eax | |
0xbb940b40 <+434>: jmp 0xbb9409e1 <gethostbyaddr+83> | |
End of assembler dump. | |
(gdb) f 7 | |
#7 0xbb93e973 in getpeername () from /usr/lib/libc.so.12 | |
(gdb) info registers | |
eax 0xbb996da4 -1147572828 | |
ecx 0x1 1 | |
edx 0x0 0 | |
ebx 0xbb9934f4 -1147587340 | |
esp 0xb9efe13c 0xb9efe13c | |
ebp 0xb9efe5d4 0xb9efe5d4 | |
esi 0xb9efef88 -1175457912 | |
edi 0xb9efef8c -1175457908 | |
eip 0xbb93e973 0xbb93e973 <getpeername+1571> | |
eflags 0x210202 [ IF RF ID ] | |
cs 0x17 23 | |
ss 0x1f 31 | |
ds 0x1f 31 | |
es 0x1f 31 | |
fs *value not available* | |
gs *value not available* | |
(gdb) disas | |
Dump of assembler code for function getpeername: | |
0xbb93e350 <+0>: mov $0x1f,%eax | |
0xbb93e355 <+5>: int $0x80 | |
0xbb93e357 <+7>: jb 0xbb93e35a <getpeername+10> | |
0xbb93e359 <+9>: ret | |
0xbb93e35a <+10>: push %ebx | |
0xbb93e35b <+11>: call 0xbb93e360 <getpeername+16> | |
0xbb93e360 <+16>: pop %ebx | |
0xbb93e361 <+17>: add $0x55194,%ebx | |
0xbb93e367 <+23>: mov -0x200(%ebx),%ecx | |
0xbb93e36d <+29>: pop %ebx | |
0xbb93e36e <+30>: jmp *%ecx | |
0xbb93e370 <+32>: push %ebp | |
0xbb93e371 <+33>: mov %esp,%ebp | |
0xbb93e373 <+35>: push %edi | |
0xbb93e374 <+36>: push %esi | |
0xbb93e375 <+37>: push %ebx | |
0xbb93e376 <+38>: sub $0x4c,%esp | |
0xbb93e379 <+41>: call 0xbb93e37e <getpeername+46> | |
0xbb93e37e <+46>: pop %ebx | |
0xbb93e37f <+47>: add $0x55176,%ebx | |
0xbb93e385 <+53>: mov %eax,-0x24(%ebp) | |
0xbb93e388 <+56>: mov %edx,-0x20(%ebp) | |
0xbb93e38b <+59>: mov 0x8(%ebp),%eax | |
0xbb93e38e <+62>: movb $0x0,(%eax) | |
0xbb93e391 <+65>: mov -0x20(%ebp),%eax | |
0xbb93e394 <+68>: test %eax,%eax | |
0xbb93e396 <+70>: je 0xbb93e429 <getpeername+217> | |
0xbb93e39c <+76>: mov -0x24(%ebp),%eax | |
0xbb93e39f <+79>: movzbl (%eax),%ecx | |
0xbb93e3a2 <+82>: mov 0x8(%ebp),%edx | |
0xbb93e3a5 <+85>: xor %esi,%esi | |
0xbb93e3a7 <+87>: lea -0x13eea(%ebx),%edi | |
0xbb93e3ad <+93>: mov %edi,-0x2c(%ebp) | |
0xbb93e3b0 <+96>: mov %edi,%eax | |
0xbb93e3b2 <+98>: lea -0xadad(%ebx),%edi | |
0xbb93e3b8 <+104>: mov %edi,-0x28(%ebp) | |
0xbb93e3bb <+107>: mov %ecx,-0x1c(%ebp) | |
0xbb93e3be <+110>: mov %eax,%ecx | |
0xbb93e3c0 <+112>: mov 0xc(%ebp),%edi | |
0xbb93e3c3 <+115>: jmp 0xbb93e3cf <getpeername+127> | |
0xbb93e3c5 <+117>: lea -0x753f(%ebx),%ecx | |
0xbb93e3cb <+123>: add %eax,%edx | |
0xbb93e3cd <+125>: sub %eax,%edi | |
0xbb93e3cf <+127>: mov -0x1c(%ebp),%eax | |
0xbb93e3d2 <+130>: mov %eax,0x10(%esp) | |
0xbb93e3d6 <+134>: mov %ecx,0xc(%esp) | |
0xbb93e3da <+138>: mov -0x28(%ebp),%ecx | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb93e3dd <+141>: mov %ecx,0x8(%esp) | |
0xbb93e3e1 <+145>: mov %edi,0x4(%esp) | |
0xbb93e3e5 <+149>: mov %edx,(%esp) | |
0xbb93e3e8 <+152>: mov %edx,-0x30(%ebp) | |
0xbb93e3eb <+155>: call 0xbb89544c <snprintf@plt> | |
0xbb93e3f0 <+160>: test %eax,%eax | |
0xbb93e3f2 <+162>: mov -0x30(%ebp),%edx | |
0xbb93e3f5 <+165>: js 0xbb93e416 <getpeername+198> | |
0xbb93e3f7 <+167>: cmp %edi,%eax | |
0xbb93e3f9 <+169>: jae 0xbb93e416 <getpeername+198> | |
0xbb93e3fb <+171>: add $0x1,%esi | |
0xbb93e3fe <+174>: cmp %esi,-0x20(%ebp) | |
0xbb93e401 <+177>: jbe 0xbb93e429 <getpeername+217> | |
0xbb93e403 <+179>: mov -0x24(%ebp),%ecx | |
0xbb93e406 <+182>: movzbl (%ecx,%esi,1),%ecx | |
0xbb93e40a <+186>: mov %ecx,-0x1c(%ebp) | |
0xbb93e40d <+189>: test %esi,%esi | |
0xbb93e40f <+191>: jne 0xbb93e3c5 <getpeername+117> | |
0xbb93e411 <+193>: mov -0x2c(%ebp),%ecx | |
0xbb93e414 <+196>: jmp 0xbb93e3cb <getpeername+123> | |
0xbb93e416 <+198>: mov 0x8(%ebp),%edi | |
0xbb93e419 <+201>: movb $0x0,(%edi) | |
0xbb93e41c <+204>: mov $0x6,%eax | |
0xbb93e421 <+209>: add $0x4c,%esp | |
0xbb93e424 <+212>: pop %ebx | |
0xbb93e425 <+213>: pop %esi | |
0xbb93e426 <+214>: pop %edi | |
0xbb93e427 <+215>: pop %ebp | |
0xbb93e428 <+216>: ret | |
0xbb93e429 <+217>: xor %eax,%eax | |
0xbb93e42b <+219>: add $0x4c,%esp | |
0xbb93e42e <+222>: pop %ebx | |
0xbb93e42f <+223>: pop %esi | |
0xbb93e430 <+224>: pop %edi | |
0xbb93e431 <+225>: pop %ebp | |
0xbb93e432 <+226>: ret | |
0xbb93e433 <+227>: push %ebp | |
0xbb93e434 <+228>: mov %esp,%ebp | |
0xbb93e436 <+230>: push %edi | |
0xbb93e437 <+231>: push %esi | |
0xbb93e438 <+232>: push %ebx | |
0xbb93e439 <+233>: sub $0x33c,%esp | |
0xbb93e43f <+239>: call 0xbb93e444 <getpeername+244> | |
0xbb93e444 <+244>: pop %ebx | |
0xbb93e445 <+245>: add $0x550b0,%ebx | |
0xbb93e44b <+251>: mov %eax,-0x32c(%ebp) | |
0xbb93e451 <+257>: mov %edx,%esi | |
0xbb93e453 <+259>: mov 0x8(%ebp),%eax | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb93e456 <+262>: mov %eax,-0x330(%ebp) | |
0xbb93e45c <+268>: mov -0x318(%ebx),%edx | |
0xbb93e462 <+274>: mov (%edx),%ecx | |
0xbb93e464 <+276>: mov %ecx,-0x1c(%ebp) | |
0xbb93e467 <+279>: xor %ecx,%ecx | |
0xbb93e469 <+281>: mov -0x32c(%ebp),%ecx | |
0xbb93e46f <+287>: test %ecx,%ecx | |
0xbb93e471 <+289>: je 0xbb93e623 <getpeername+723> | |
0xbb93e477 <+295>: test %esi,%esi | |
0xbb93e479 <+297>: je 0xbb93e652 <getpeername+770> | |
0xbb93e47f <+303>: mov -0x330(%ebp),%edx | |
0xbb93e485 <+309>: test %edx,%edx | |
0xbb93e487 <+311>: je 0xbb93e5f4 <getpeername+676> | |
0xbb93e48d <+317>: movl $0x200,0xc(%esp) | |
0xbb93e495 <+325>: lea -0x31c(%ebp),%edx | |
0xbb93e49b <+331>: mov %edx,0x8(%esp) | |
0xbb93e49f <+335>: mov %esi,0x4(%esp) | |
0xbb93e4a3 <+339>: movl $0x18,(%esp) | |
0xbb93e4aa <+346>: mov %edx,-0x338(%ebp) | |
0xbb93e4b0 <+352>: call 0xbb89696c <_inet_ntop@plt> | |
0xbb93e4b5 <+357>: test %eax,%eax | |
0xbb93e4b7 <+359>: mov -0x338(%ebp),%edx | |
0xbb93e4bd <+365>: je 0xbb93e5ea <getpeername+666> | |
0xbb93e4c3 <+371>: xor %eax,%eax | |
0xbb93e4c5 <+373>: mov $0xffffffff,%ecx | |
0xbb93e4ca <+378>: mov %edx,%edi | |
0xbb93e4cc <+380>: repnz scas %es:(%edi),%al | |
0xbb93e4ce <+382>: mov %ecx,%esi | |
0xbb93e4d0 <+384>: not %esi | |
0xbb93e4d2 <+386>: lea -0x1(%esi),%eax | |
0xbb93e4d5 <+389>: mov %eax,-0x334(%ebp) | |
0xbb93e4db <+395>: cmp 0xc(%ebp),%esi | |
0xbb93e4de <+398>: jbe 0xbb93e501 <getpeername+433> | |
0xbb93e4e0 <+400>: mov $0xe,%eax | |
0xbb93e4e5 <+405>: mov -0x318(%ebx),%ecx | |
0xbb93e4eb <+411>: mov -0x1c(%ebp),%edx | |
0xbb93e4ee <+414>: xor (%ecx),%edx | |
0xbb93e4f0 <+416>: jne 0xbb93e73c <getpeername+1004> | |
0xbb93e4f6 <+422>: add $0x33c,%esp | |
0xbb93e4fc <+428>: pop %ebx | |
0xbb93e4fd <+429>: pop %esi | |
0xbb93e4fe <+430>: pop %edi | |
0xbb93e4ff <+431>: pop %ebp | |
0xbb93e500 <+432>: ret | |
0xbb93e501 <+433>: mov 0xc(%ebp),%ecx | |
0xbb93e504 <+436>: mov %ecx,0x8(%esp) | |
0xbb93e508 <+440>: mov %edx,0x4(%esp) | |
0xbb93e50c <+444>: mov -0x330(%ebp),%eax | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb93e512 <+450>: mov %eax,(%esp) | |
0xbb93e515 <+453>: call 0xbb89683c <_strlcpy@plt> | |
0xbb93e51a <+458>: mov -0x32c(%ebp),%edx | |
0xbb93e520 <+464>: mov 0x18(%edx),%eax | |
0xbb93e523 <+467>: test %eax,%eax | |
0xbb93e525 <+469>: jne 0xbb93e52b <getpeername+475> | |
0xbb93e527 <+471>: xor %eax,%eax | |
0xbb93e529 <+473>: jmp 0xbb93e4e5 <getpeername+405> | |
0xbb93e52b <+475>: testb $0x40,0x10(%ebp) | |
0xbb93e52f <+479>: jne 0xbb93e6de <getpeername+910> | |
0xbb93e535 <+485>: mov -0x32c(%ebp),%ecx | |
0xbb93e53b <+491>: movzbl 0x8(%ecx),%edx | |
0xbb93e53f <+495>: cmp $0xfe,%dl | |
0xbb93e542 <+498>: je 0xbb93e681 <getpeername+817> | |
0xbb93e548 <+504>: cmp $0xff,%dl | |
0xbb93e54b <+507>: jne 0xbb93e694 <getpeername+836> | |
0xbb93e551 <+513>: mov -0x32c(%ebp),%ecx | |
0xbb93e557 <+519>: movzbl 0x9(%ecx),%edx | |
0xbb93e55b <+523>: and $0xf,%edx | |
0xbb93e55e <+526>: cmp $0x2,%edx | |
0xbb93e561 <+529>: jne 0xbb93e694 <getpeername+836> | |
0xbb93e567 <+535>: lea -0x11c(%ebp),%edx | |
0xbb93e56d <+541>: mov %edx,0x4(%esp) | |
0xbb93e571 <+545>: mov %eax,(%esp) | |
0xbb93e574 <+548>: mov %edx,-0x338(%ebp) | |
0xbb93e57a <+554>: call 0xbb8944bc <_if_indextoname@plt> | |
0xbb93e57f <+559>: mov %eax,%edi | |
0xbb93e581 <+561>: test %eax,%eax | |
0xbb93e583 <+563>: mov -0x338(%ebp),%edx | |
0xbb93e589 <+569>: je 0xbb93e72e <getpeername+990> | |
0xbb93e58f <+575>: xor %eax,%eax | |
0xbb93e591 <+577>: mov $0xffffffff,%ecx | |
0xbb93e596 <+582>: repnz scas %es:(%edi),%al | |
0xbb93e598 <+584>: not %ecx | |
0xbb93e59a <+586>: sub $0x1,%ecx | |
0xbb93e59d <+589>: js 0xbb93e4e0 <getpeername+400> | |
0xbb93e5a3 <+595>: mov -0x334(%ebp),%edi | |
0xbb93e5a9 <+601>: lea (%ecx,%edi,1),%edi | |
0xbb93e5ac <+604>: lea 0x2(%edi),%eax | |
0xbb93e5af <+607>: cmp %eax,0xc(%ebp) | |
0xbb93e5b2 <+610>: jb 0xbb93e4e0 <getpeername+400> | |
0xbb93e5b8 <+616>: add -0x330(%ebp),%esi | |
0xbb93e5be <+622>: mov %ecx,0x8(%esp) | |
0xbb93e5c2 <+626>: mov %edx,0x4(%esp) | |
0xbb93e5c6 <+630>: mov %esi,(%esp) | |
0xbb93e5c9 <+633>: call 0xbb89473c <memcpy@plt> | |
0xbb93e5ce <+638>: mov -0x330(%ebp),%edx | |
0xbb93e5d4 <+644>: mov -0x334(%ebp),%eax | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb93e5da <+650>: movb $0x25,(%edx,%eax,1) | |
0xbb93e5de <+654>: movb $0x0,0x1(%edx,%edi,1) | |
0xbb93e5e3 <+659>: xor %eax,%eax | |
0xbb93e5e5 <+661>: jmp 0xbb93e4e5 <getpeername+405> | |
0xbb93e5ea <+666>: mov $0xb,%eax | |
0xbb93e5ef <+671>: jmp 0xbb93e4e5 <getpeername+405> | |
0xbb93e5f4 <+676>: lea -0x15502(%ebx),%eax | |
0xbb93e5fa <+682>: mov %eax,0xc(%esp) | |
0xbb93e5fe <+686>: lea -0xad24(%ebx),%eax | |
0xbb93e604 <+692>: mov %eax,0x8(%esp) | |
0xbb93e608 <+696>: movl $0x195,0x4(%esp) | |
0xbb93e610 <+704>: lea -0xad78(%ebx),%eax | |
0xbb93e616 <+710>: mov %eax,(%esp) | |
0xbb93e619 <+713>: call 0xbb8957ec <__diagassert13@plt> | |
0xbb93e61e <+718>: jmp 0xbb93e48d <getpeername+317> | |
0xbb93e623 <+723>: lea -0xada6(%ebx),%eax | |
0xbb93e629 <+729>: mov %eax,0xc(%esp) | |
0xbb93e62d <+733>: lea -0xad24(%ebx),%eax | |
0xbb93e633 <+739>: mov %eax,0x8(%esp) | |
0xbb93e637 <+743>: movl $0x193,0x4(%esp) | |
0xbb93e63f <+751>: lea -0xad78(%ebx),%eax | |
0xbb93e645 <+757>: mov %eax,(%esp) | |
0xbb93e648 <+760>: call 0xbb8957ec <__diagassert13@plt> | |
0xbb93e64d <+765>: jmp 0xbb93e477 <getpeername+295> | |
0xbb93e652 <+770>: lea -0xbf54(%ebx),%eax | |
0xbb93e658 <+776>: mov %eax,0xc(%esp) | |
0xbb93e65c <+780>: lea -0xad24(%ebx),%eax | |
0xbb93e662 <+786>: mov %eax,0x8(%esp) | |
0xbb93e666 <+790>: movl $0x194,0x4(%esp) | |
0xbb93e66e <+798>: lea -0xad78(%ebx),%eax | |
0xbb93e674 <+804>: mov %eax,(%esp) | |
0xbb93e677 <+807>: call 0xbb8957ec <__diagassert13@plt> | |
0xbb93e67c <+812>: jmp 0xbb93e47f <getpeername+303> | |
0xbb93e681 <+817>: movzbl 0x9(%ecx),%edx | |
0xbb93e685 <+821>: and $0xc0,%edx | |
0xbb93e68b <+827>: add $0xffffff80,%edx | |
0xbb93e68e <+830>: je 0xbb93e567 <getpeername+535> | |
0xbb93e694 <+836>: lea -0x11c(%ebp),%edx | |
0xbb93e69a <+842>: mov %eax,0xc(%esp) | |
0xbb93e69e <+846>: lea -0xad85(%ebx),%eax | |
0xbb93e6a4 <+852>: mov %eax,0x8(%esp) | |
0xbb93e6a8 <+856>: movl $0x100,0x4(%esp) | |
0xbb93e6b0 <+864>: mov %edx,(%esp) | |
0xbb93e6b3 <+867>: mov %edx,-0x338(%ebp) | |
0xbb93e6b9 <+873>: call 0xbb89544c <snprintf@plt> | |
0xbb93e6be <+878>: test %eax,%eax | |
0xbb93e6c0 <+880>: mov -0x338(%ebp),%edx | |
0xbb93e6c6 <+886>: js 0xbb93e4e0 <getpeername+400> | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb93e6cc <+892>: mov %eax,%ecx | |
0xbb93e6ce <+894>: cmp $0xff,%eax | |
0xbb93e6d3 <+899>: jbe 0xbb93e5a3 <getpeername+595> | |
0xbb93e6d9 <+905>: jmp 0xbb93e4e0 <getpeername+400> | |
0xbb93e6de <+910>: mov %eax,0xc(%esp) | |
0xbb93e6e2 <+914>: lea -0xad85(%ebx),%eax | |
0xbb93e6e8 <+920>: mov %eax,0x8(%esp) | |
0xbb93e6ec <+924>: movl $0x100,0x4(%esp) | |
0xbb93e6f4 <+932>: lea -0x11c(%ebp),%edx | |
0xbb93e6fa <+938>: mov %edx,(%esp) | |
0xbb93e6fd <+941>: mov %edx,-0x338(%ebp) | |
0xbb93e703 <+947>: call 0xbb89544c <snprintf@plt> | |
0xbb93e708 <+952>: test %eax,%eax | |
0xbb93e70a <+954>: mov -0x338(%ebp),%edx | |
0xbb93e710 <+960>: js 0xbb93e4e0 <getpeername+400> | |
0xbb93e716 <+966>: mov %eax,%ecx | |
0xbb93e718 <+968>: mov $0xe,%eax | |
0xbb93e71d <+973>: cmp $0xff,%ecx | |
0xbb93e723 <+979>: ja 0xbb93e4e5 <getpeername+405> | |
0xbb93e729 <+985>: jmp 0xbb93e5a3 <getpeername+595> | |
0xbb93e72e <+990>: mov -0x32c(%ebp),%ecx | |
0xbb93e734 <+996>: mov 0x18(%ecx),%eax | |
0xbb93e737 <+999>: jmp 0xbb93e69a <getpeername+842> | |
0xbb93e73c <+1004>: call 0xbb896adc <__stack_chk_fail_local@plt> | |
0xbb93e741 <+1009>: push %ebp | |
0xbb93e742 <+1010>: mov %esp,%ebp | |
0xbb93e744 <+1012>: push %edi | |
0xbb93e745 <+1013>: push %esi | |
0xbb93e746 <+1014>: push %ebx | |
0xbb93e747 <+1015>: sub $0x48c,%esp | |
0xbb93e74d <+1021>: call 0xbb93e752 <getpeername+1026> | |
0xbb93e752 <+1026>: pop %ebx | |
0xbb93e753 <+1027>: add $0x54da2,%ebx | |
0xbb93e759 <+1033>: mov %eax,%esi | |
0xbb93e75b <+1035>: mov 0x8(%ebp),%eax | |
0xbb93e75e <+1038>: mov %eax,-0x474(%ebp) | |
0xbb93e764 <+1044>: mov 0x10(%ebp),%ecx | |
0xbb93e767 <+1047>: mov %ecx,-0x470(%ebp) | |
0xbb93e76d <+1053>: mov -0x318(%ebx),%eax | |
0xbb93e773 <+1059>: mov (%eax),%ecx | |
0xbb93e775 <+1061>: mov %ecx,-0x1c(%ebp) | |
0xbb93e778 <+1064>: xor %ecx,%ecx | |
0xbb93e77a <+1066>: test %esi,%esi | |
0xbb93e77c <+1068>: je 0xbb93e7f2 <getpeername+1186> | |
0xbb93e77e <+1070>: movzbl 0x1(%esi),%eax | |
0xbb93e782 <+1074>: mov %al,-0x46c(%ebp) | |
0xbb93e788 <+1080>: movzbl %al,%edi | |
0xbb93e78b <+1083>: cmp $0x18,%edi | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb93e78e <+1086>: je 0xbb93e9bc <getpeername+1644> | |
0xbb93e794 <+1092>: xor %eax,%eax | |
0xbb93e796 <+1094>: jmp 0xbb93e79c <getpeername+1100> | |
0xbb93e798 <+1096>: cmp %ecx,%edi | |
0xbb93e79a <+1098>: je 0xbb93e7d0 <getpeername+1152> | |
0xbb93e79c <+1100>: add $0x1,%eax | |
0xbb93e79f <+1103>: mov %eax,%ecx | |
0xbb93e7a1 <+1105>: shl $0x4,%ecx | |
0xbb93e7a4 <+1108>: mov -0xad54(%ecx,%ebx,1),%ecx | |
0xbb93e7ab <+1115>: test %ecx,%ecx | |
0xbb93e7ad <+1117>: jne 0xbb93e798 <getpeername+1096> | |
0xbb93e7af <+1119>: mov $0x5,%eax | |
0xbb93e7b4 <+1124>: mov -0x318(%ebx),%edx | |
0xbb93e7ba <+1130>: mov -0x1c(%ebp),%ecx | |
0xbb93e7bd <+1133>: xor (%edx),%ecx | |
0xbb93e7bf <+1135>: jne 0xbb93eb8e <getpeername+2110> | |
0xbb93e7c5 <+1141>: add $0x48c,%esp | |
0xbb93e7cb <+1147>: pop %ebx | |
0xbb93e7cc <+1148>: pop %esi | |
0xbb93e7cd <+1149>: pop %edi | |
0xbb93e7ce <+1150>: pop %ebp | |
0xbb93e7cf <+1151>: ret | |
0xbb93e7d0 <+1152>: mov %eax,-0x478(%ebp) | |
0xbb93e7d6 <+1158>: lea -0xad54(%ebx),%ecx | |
0xbb93e7dc <+1164>: mov %ecx,-0x47c(%ebp) | |
0xbb93e7e2 <+1170>: mov -0x478(%ebp),%eax | |
0xbb93e7e8 <+1176>: shl $0x4,%eax | |
0xbb93e7eb <+1179>: add %ecx,%eax | |
0xbb93e7ed <+1181>: cmp %edx,0x8(%eax) | |
0xbb93e7f0 <+1184>: je 0xbb93e7f9 <getpeername+1193> | |
0xbb93e7f2 <+1186>: mov $0x4,%eax | |
0xbb93e7f7 <+1191>: jmp 0xbb93e7b4 <getpeername+1124> | |
0xbb93e7f9 <+1193>: movzwl 0x2(%esi),%edx | |
0xbb93e7fd <+1197>: mov 0xc(%eax),%eax | |
0xbb93e800 <+1200>: mov %eax,-0x480(%ebp) | |
0xbb93e806 <+1206>: mov -0x470(%ebp),%eax | |
0xbb93e80c <+1212>: test %eax,%eax | |
0xbb93e80e <+1214>: je 0xbb93e899 <getpeername+1353> | |
0xbb93e814 <+1220>: mov 0x14(%ebp),%edi | |
0xbb93e817 <+1223>: test %edi,%edi | |
0xbb93e819 <+1225>: je 0xbb93e899 <getpeername+1353> | |
0xbb93e81b <+1227>: mov 0x18(%ebp),%eax | |
0xbb93e81e <+1230>: and $0x8,%eax | |
0xbb93e821 <+1233>: je 0xbb93ea52 <getpeername+1794> | |
0xbb93e827 <+1239>: mov %edx,%eax | |
0xbb93e829 <+1241>: ror $0x8,%ax | |
0xbb93e82d <+1245>: movzwl %ax,%eax | |
0xbb93e830 <+1248>: mov %eax,0xc(%esp) | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb93e834 <+1252>: lea -0xad85(%ebx),%eax | |
0xbb93e83a <+1258>: mov %eax,0x8(%esp) | |
0xbb93e83e <+1262>: movl $0x200,0x4(%esp) | |
0xbb93e846 <+1270>: lea -0x21c(%ebp),%edx | |
0xbb93e84c <+1276>: mov %edx,(%esp) | |
0xbb93e84f <+1279>: mov %edx,-0x484(%ebp) | |
0xbb93e855 <+1285>: call 0xbb89544c <snprintf@plt> | |
0xbb93e85a <+1290>: xor %eax,%eax | |
0xbb93e85c <+1292>: mov $0xffffffff,%ecx | |
0xbb93e861 <+1297>: mov -0x484(%ebp),%edx | |
0xbb93e867 <+1303>: mov %edx,%edi | |
0xbb93e869 <+1305>: repnz scas %es:(%edi),%al | |
0xbb93e86b <+1307>: not %ecx | |
0xbb93e86d <+1309>: cmp %ecx,0x14(%ebp) | |
0xbb93e870 <+1312>: jb 0xbb93e938 <getpeername+1512> | |
0xbb93e876 <+1318>: mov 0x14(%ebp),%eax | |
0xbb93e879 <+1321>: mov %eax,0x8(%esp) | |
0xbb93e87d <+1325>: mov %edx,0x4(%esp) | |
0xbb93e881 <+1329>: mov -0x470(%ebp),%edx | |
0xbb93e887 <+1335>: mov %edx,(%esp) | |
0xbb93e88a <+1338>: call 0xbb89683c <_strlcpy@plt> | |
0xbb93e88f <+1343>: movzbl 0x1(%esi),%ecx | |
0xbb93e893 <+1347>: mov %cl,-0x46c(%ebp) | |
0xbb93e899 <+1353>: cmpb $0x2,-0x46c(%ebp) | |
0xbb93e8a0 <+1360>: je 0xbb93ea09 <getpeername+1721> | |
0xbb93e8a6 <+1366>: cmpb $0x18,-0x46c(%ebp) | |
0xbb93e8ad <+1373>: je 0xbb93e9cb <getpeername+1659> | |
0xbb93e8b3 <+1379>: mov -0x474(%ebp),%eax | |
0xbb93e8b9 <+1385>: test %eax,%eax | |
0xbb93e8bb <+1387>: je 0xbb93e942 <getpeername+1522> | |
0xbb93e8c1 <+1393>: mov 0xc(%ebp),%edi | |
0xbb93e8c4 <+1396>: test %edi,%edi | |
0xbb93e8c6 <+1398>: je 0xbb93e942 <getpeername+1522> | |
0xbb93e8c8 <+1400>: mov -0x480(%ebp),%edi | |
0xbb93e8ce <+1406>: lea (%esi,%edi,1),%edi | |
0xbb93e8d1 <+1409>: testb $0x2,0x18(%ebp) | |
0xbb93e8d5 <+1413>: je 0xbb93e949 <getpeername+1529> | |
0xbb93e8d7 <+1415>: testb $0x4,0x18(%ebp) | |
0xbb93e8db <+1419>: jne 0xbb93eb1d <getpeername+1997> | |
0xbb93e8e1 <+1425>: mov -0x478(%ebp),%eax | |
0xbb93e8e7 <+1431>: shl $0x4,%eax | |
0xbb93e8ea <+1434>: mov -0x47c(%ebp),%edx | |
0xbb93e8f0 <+1440>: mov (%edx,%eax,1),%eax | |
0xbb93e8f3 <+1443>: cmp $0x18,%eax | |
0xbb93e8f6 <+1446>: je 0xbb93eb32 <getpeername+2018> | |
0xbb93e8fc <+1452>: movl $0x200,0xc(%esp) | |
0xbb93e904 <+1460>: lea -0x41c(%ebp),%esi | |
0xbb93e90a <+1466>: mov %esi,0x8(%esp) | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb93e90e <+1470>: mov %edi,0x4(%esp) | |
0xbb93e912 <+1474>: mov %eax,(%esp) | |
0xbb93e915 <+1477>: call 0xbb89696c <_inet_ntop@plt> | |
0xbb93e91a <+1482>: test %eax,%eax | |
0xbb93e91c <+1484>: je 0xbb93ebd1 <getpeername+2177> | |
0xbb93e922 <+1490>: xor %eax,%eax | |
0xbb93e924 <+1492>: mov $0xffffffff,%ecx | |
0xbb93e929 <+1497>: mov %esi,%edi | |
0xbb93e92b <+1499>: repnz scas %es:(%edi),%al | |
0xbb93e92d <+1501>: not %ecx | |
0xbb93e92f <+1503>: cmp %ecx,0xc(%ebp) | |
0xbb93e932 <+1506>: jae 0xbb93eb57 <getpeername+2055> | |
0xbb93e938 <+1512>: mov $0x6,%eax | |
0xbb93e93d <+1517>: jmp 0xbb93e7b4 <getpeername+1124> | |
0xbb93e942 <+1522>: xor %eax,%eax | |
0xbb93e944 <+1524>: jmp 0xbb93e7b4 <getpeername+1124> | |
0xbb93e949 <+1529>: mov -0x478(%ebp),%eax | |
0xbb93e94f <+1535>: shl $0x4,%eax | |
0xbb93e952 <+1538>: add -0x47c(%ebp),%eax | |
0xbb93e958 <+1544>: mov (%eax),%edx | |
0xbb93e95a <+1546>: mov %edx,0x8(%esp) | |
0xbb93e95e <+1550>: mov 0x4(%eax),%eax | |
0xbb93e961 <+1553>: mov %eax,0x4(%esp) | |
0xbb93e965 <+1557>: mov %edi,(%esp) | |
0xbb93e968 <+1560>: mov %edx,-0x484(%ebp) | |
0xbb93e96e <+1566>: call 0xbb89680c <_gethostbyaddr@plt> | |
=> 0xbb93e973 <+1571>: test %eax,%eax | |
0xbb93e975 <+1573>: mov -0x484(%ebp),%edx | |
0xbb93e97b <+1579>: je 0xbb93eb93 <getpeername+2115> | |
0xbb93e981 <+1585>: mov (%eax),%edx | |
0xbb93e983 <+1587>: xor %eax,%eax | |
0xbb93e985 <+1589>: or $0xffffffff,%ecx | |
0xbb93e988 <+1592>: mov %edx,%edi | |
0xbb93e98a <+1594>: repnz scas %es:(%edi),%al | |
0xbb93e98c <+1596>: not %ecx | |
0xbb93e98e <+1598>: mov $0x6,%eax | |
0xbb93e993 <+1603>: cmp %ecx,0xc(%ebp) | |
0xbb93e996 <+1606>: jb 0xbb93e7b4 <getpeername+1124> | |
0xbb93e99c <+1612>: mov 0xc(%ebp),%ecx | |
0xbb93e99f <+1615>: mov %ecx,0x8(%esp) | |
0xbb93e9a3 <+1619>: mov %edx,0x4(%esp) | |
0xbb93e9a7 <+1623>: mov -0x474(%ebp),%eax | |
0xbb93e9ad <+1629>: mov %eax,(%esp) | |
0xbb93e9b0 <+1632>: call 0xbb89683c <_strlcpy@plt> | |
0xbb93e9b5 <+1637>: xor %eax,%eax | |
0xbb93e9b7 <+1639>: jmp 0xbb93e7b4 <getpeername+1124> | |
0xbb93e9bc <+1644>: movl $0x0,-0x478(%ebp) | |
0xbb93e9c6 <+1654>: jmp 0xbb93e7d6 <getpeername+1158> | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb93e9cb <+1659>: movzbl 0x8(%esi),%eax | |
0xbb93e9cf <+1663>: test %al,%al | |
0xbb93e9d1 <+1665>: jne 0xbb93ea39 <getpeername+1769> | |
0xbb93e9d3 <+1667>: mov 0x8(%esi),%ecx | |
0xbb93e9d6 <+1670>: test %ecx,%ecx | |
0xbb93e9d8 <+1672>: jne 0xbb93ea00 <getpeername+1712> | |
0xbb93e9da <+1674>: mov 0xc(%esi),%edx | |
0xbb93e9dd <+1677>: test %edx,%edx | |
0xbb93e9df <+1679>: jne 0xbb93ea00 <getpeername+1712> | |
0xbb93e9e1 <+1681>: mov 0x10(%esi),%eax | |
0xbb93e9e4 <+1684>: cmp $0xffff0000,%eax | |
0xbb93e9e9 <+1689>: je 0xbb93e8b3 <getpeername+1379> | |
0xbb93e9ef <+1695>: test %eax,%eax | |
0xbb93e9f1 <+1697>: jne 0xbb93ea00 <getpeername+1712> | |
0xbb93e9f3 <+1699>: cmpl $0x1000000,0x14(%esi) | |
0xbb93e9fa <+1706>: je 0xbb93e8b3 <getpeername+1379> | |
0xbb93ea00 <+1712>: orl $0x2,0x18(%ebp) | |
0xbb93ea04 <+1716>: jmp 0xbb93e8b3 <getpeername+1379> | |
0xbb93ea09 <+1721>: mov 0x4(%esi),%eax | |
0xbb93ea0c <+1724>: bswap %eax | |
0xbb93ea0e <+1726>: mov %eax,%edx | |
0xbb93ea10 <+1728>: and $0xf0000000,%edx | |
0xbb93ea16 <+1734>: cmp $0xe0000000,%edx | |
0xbb93ea1c <+1740>: je 0xbb93eade <getpeername+1934> | |
0xbb93ea22 <+1746>: cmp $0xf0000000,%edx | |
0xbb93ea28 <+1752>: je 0xbb93eade <getpeername+1934> | |
0xbb93ea2e <+1758>: shr $0x18,%eax | |
0xbb93ea31 <+1761>: jne 0xbb93e8b3 <getpeername+1379> | |
0xbb93ea37 <+1767>: jmp 0xbb93ea00 <getpeername+1712> | |
0xbb93ea39 <+1769>: cmp $0xfe,%al | |
0xbb93ea3b <+1771>: nop | |
0xbb93ea3c <+1772>: lea 0x0(%esi,%eiz,1),%esi | |
0xbb93ea40 <+1776>: je 0xbb93eb77 <getpeername+2087> | |
0xbb93ea46 <+1782>: cmp $0xff,%al | |
0xbb93ea48 <+1784>: jne 0xbb93e8b3 <getpeername+1379> | |
0xbb93ea4e <+1790>: xchg %ax,%ax | |
0xbb93ea50 <+1792>: jmp 0xbb93ea00 <getpeername+1712> | |
0xbb93ea52 <+1794>: lea -0x464(%ebp),%ecx | |
0xbb93ea58 <+1800>: mov %ecx,-0x46c(%ebp) | |
0xbb93ea5e <+1806>: mov $0xe,%ecx | |
0xbb93ea63 <+1811>: mov -0x46c(%ebp),%edi | |
0xbb93ea69 <+1817>: rep stos %eax,%es:(%edi) | |
0xbb93ea6b <+1819>: testb $0x10,0x18(%ebp) | |
0xbb93ea6f <+1823>: je 0xbb93eb27 <getpeername+2007> | |
0xbb93ea75 <+1829>: lea -0xc7b2(%ebx),%ecx | |
0xbb93ea7b <+1835>: mov -0x46c(%ebp),%eax | |
0xbb93ea81 <+1841>: mov %eax,0xc(%esp) | |
0xbb93ea85 <+1845>: lea -0x42c(%ebp),%eax | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb93ea8b <+1851>: mov %eax,0x8(%esp) | |
0xbb93ea8f <+1855>: mov %ecx,0x4(%esp) | |
0xbb93ea93 <+1859>: movzwl %dx,%eax | |
0xbb93ea96 <+1862>: mov %eax,(%esp) | |
0xbb93ea99 <+1865>: mov %edx,-0x484(%ebp) | |
0xbb93ea9f <+1871>: call 0xbb8951dc <_getservbyport_r@plt> | |
0xbb93eaa4 <+1876>: test %eax,%eax | |
0xbb93eaa6 <+1878>: mov -0x484(%ebp),%edx | |
0xbb93eaac <+1884>: je 0xbb93e827 <getpeername+1239> | |
0xbb93eab2 <+1890>: mov (%eax),%edx | |
0xbb93eab4 <+1892>: xor %eax,%eax | |
0xbb93eab6 <+1894>: mov $0xffffffff,%ecx | |
0xbb93eabb <+1899>: mov %edx,%edi | |
0xbb93eabd <+1901>: repnz scas %es:(%edi),%al | |
0xbb93eabf <+1903>: not %ecx | |
0xbb93eac1 <+1905>: cmp %ecx,0x14(%ebp) | |
0xbb93eac4 <+1908>: jae 0xbb93eae7 <getpeername+1943> | |
0xbb93eac6 <+1910>: mov -0x46c(%ebp),%edx | |
0xbb93eacc <+1916>: mov %edx,(%esp) | |
0xbb93eacf <+1919>: call 0xbb896d0c <_endservent_r@plt> | |
0xbb93ead4 <+1924>: mov $0x6,%eax | |
0xbb93ead9 <+1929>: jmp 0xbb93e7b4 <getpeername+1124> | |
0xbb93eade <+1934>: orl $0x2,0x18(%ebp) | |
0xbb93eae2 <+1938>: jmp 0xbb93ea2e <getpeername+1758> | |
0xbb93eae7 <+1943>: mov 0x14(%ebp),%ecx | |
0xbb93eaea <+1946>: mov %ecx,0x8(%esp) | |
0xbb93eaee <+1950>: mov %edx,0x4(%esp) | |
0xbb93eaf2 <+1954>: mov -0x470(%ebp),%eax | |
0xbb93eaf8 <+1960>: mov %eax,(%esp) | |
0xbb93eafb <+1963>: call 0xbb89683c <_strlcpy@plt> | |
0xbb93eb00 <+1968>: mov -0x46c(%ebp),%edx | |
0xbb93eb06 <+1974>: mov %edx,(%esp) | |
0xbb93eb09 <+1977>: call 0xbb896d0c <_endservent_r@plt> | |
0xbb93eb0e <+1982>: movzbl 0x1(%esi),%ecx | |
0xbb93eb12 <+1986>: mov %cl,-0x46c(%ebp) | |
0xbb93eb18 <+1992>: jmp 0xbb93e899 <getpeername+1353> | |
0xbb93eb1d <+1997>: mov $0x8,%eax | |
0xbb93eb22 <+2002>: jmp 0xbb93e7b4 <getpeername+1124> | |
0xbb93eb27 <+2007>: lea -0x153d3(%ebx),%ecx | |
0xbb93eb2d <+2013>: jmp 0xbb93ea7b <getpeername+1835> | |
0xbb93eb32 <+2018>: mov 0x18(%ebp),%ecx | |
0xbb93eb35 <+2021>: mov %ecx,0x8(%esp) | |
0xbb93eb39 <+2025>: mov 0xc(%ebp),%eax | |
0xbb93eb3c <+2028>: mov %eax,0x4(%esp) | |
0xbb93eb40 <+2032>: mov -0x474(%ebp),%edx | |
0xbb93eb46 <+2038>: mov %edx,(%esp) | |
0xbb93eb49 <+2041>: mov %edi,%edx | |
0xbb93eb4b <+2043>: mov %esi,%eax | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb93eb4d <+2045>: call 0xbb93e433 <getpeername+227> | |
0xbb93eb52 <+2050>: jmp 0xbb93e7b4 <getpeername+1124> | |
0xbb93eb57 <+2055>: mov 0xc(%ebp),%ecx | |
0xbb93eb5a <+2058>: mov %ecx,0x8(%esp) | |
0xbb93eb5e <+2062>: mov %esi,0x4(%esp) | |
0xbb93eb62 <+2066>: mov -0x474(%ebp),%eax | |
0xbb93eb68 <+2072>: mov %eax,(%esp) | |
0xbb93eb6b <+2075>: call 0xbb89683c <_strlcpy@plt> | |
0xbb93eb70 <+2080>: xor %eax,%eax | |
0xbb93eb72 <+2082>: jmp 0xbb93e7b4 <getpeername+1124> | |
0xbb93eb77 <+2087>: movzbl 0x9(%esi),%eax | |
0xbb93eb7b <+2091>: and $0xc0,%eax | |
0xbb93eb80 <+2096>: add $0xffffff80,%eax | |
0xbb93eb83 <+2099>: jne 0xbb93e8b3 <getpeername+1379> | |
0xbb93eb89 <+2105>: jmp 0xbb93ea00 <getpeername+1712> | |
0xbb93eb8e <+2110>: call 0xbb896adc <__stack_chk_fail_local@plt> | |
0xbb93eb93 <+2115>: mov $0x8,%eax | |
0xbb93eb98 <+2120>: testb $0x4,0x18(%ebp) | |
0xbb93eb9c <+2124>: jne 0xbb93e7b4 <getpeername+1124> | |
0xbb93eba2 <+2130>: cmp $0x18,%edx | |
0xbb93eba5 <+2133>: je 0xbb93ebdb <getpeername+2187> | |
0xbb93eba7 <+2135>: mov 0xc(%ebp),%ecx | |
0xbb93ebaa <+2138>: mov %ecx,0xc(%esp) | |
0xbb93ebae <+2142>: mov -0x474(%ebp),%eax | |
0xbb93ebb4 <+2148>: mov %eax,0x8(%esp) | |
0xbb93ebb8 <+2152>: mov %edi,0x4(%esp) | |
0xbb93ebbc <+2156>: mov %edx,(%esp) | |
0xbb93ebbf <+2159>: call 0xbb89696c <_inet_ntop@plt> | |
0xbb93ebc4 <+2164>: cmp $0x1,%eax | |
0xbb93ebc7 <+2167>: sbb %eax,%eax | |
0xbb93ebc9 <+2169>: and $0xb,%eax | |
0xbb93ebcc <+2172>: jmp 0xbb93e7b4 <getpeername+1124> | |
0xbb93ebd1 <+2177>: mov $0xb,%eax | |
0xbb93ebd6 <+2182>: jmp 0xbb93e7b4 <getpeername+1124> | |
0xbb93ebdb <+2187>: mov 0x18(%ebp),%edx | |
0xbb93ebde <+2190>: mov %edx,0x8(%esp) | |
0xbb93ebe2 <+2194>: mov 0xc(%ebp),%ecx | |
0xbb93ebe5 <+2197>: mov %ecx,0x4(%esp) | |
0xbb93ebe9 <+2201>: mov -0x474(%ebp),%eax | |
0xbb93ebef <+2207>: mov %eax,(%esp) | |
0xbb93ebf2 <+2210>: mov %edi,%edx | |
0xbb93ebf4 <+2212>: mov %esi,%eax | |
0xbb93ebf6 <+2214>: call 0xbb93e433 <getpeername+227> | |
0xbb93ebfb <+2219>: jmp 0xbb93e7b4 <getpeername+1124> | |
End of assembler dump. | |
(gdb) f 8 | |
#8 0xb9efef8c in ?? () | |
(gdb) info registers | |
eax 0xbb996da4 -1147572828 | |
ecx 0x1 1 | |
edx 0x0 0 | |
ebx 0xbb9934f4 -1147587340 | |
esp 0xb9efe140 0xb9efe140 | |
ebp 0xb9efe5d4 0xb9efe5d4 | |
esi 0xb9efef88 -1175457912 | |
edi 0xb9efef8c -1175457908 | |
eip 0xb9efef8c 0xb9efef8c | |
eflags 0x210202 [ IF RF ID ] | |
cs 0x17 23 | |
ss 0x1f 31 | |
ds 0x1f 31 | |
es 0x1f 31 | |
fs *value not available* | |
gs *value not available* | |
(gdb) f 9 | |
#9 0xbb93ec8f in getnameinfo () from /usr/lib/libc.so.12 | |
(gdb) info registers | |
eax 0xbb996da4 -1147572828 | |
ecx 0x1 1 | |
edx 0x0 0 | |
ebx 0xbb9934f4 -1147587340 | |
esp 0xb9efe5dc 0xb9efe5dc | |
ebp 0xb9efe634 0xb9efe634 | |
esi 0xb9efef88 -1175457912 | |
edi 0xb9efef8c -1175457908 | |
eip 0xbb93ec8f 0xbb93ec8f <getnameinfo+143> | |
eflags 0x210202 [ IF RF ID ] | |
cs 0x17 23 | |
ss 0x1f 31 | |
ds 0x1f 31 | |
es 0x1f 31 | |
fs *value not available* | |
gs *value not available* | |
(gdb) disas | |
Dump of assembler code for function getnameinfo: | |
0xbb93ec00 <+0>: push %ebp | |
0xbb93ec01 <+1>: mov %esp,%ebp | |
0xbb93ec03 <+3>: push %edi | |
0xbb93ec04 <+4>: push %esi | |
0xbb93ec05 <+5>: push %ebx | |
0xbb93ec06 <+6>: sub $0x4c,%esp | |
0xbb93ec09 <+9>: call 0xbb93ec0e <getnameinfo+14> | |
0xbb93ec0e <+14>: pop %ebx | |
0xbb93ec0f <+15>: add $0x548e6,%ebx | |
0xbb93ec15 <+21>: mov 0x8(%ebp),%esi | |
0xbb93ec18 <+24>: mov 0x10(%ebp),%edx | |
0xbb93ec1b <+27>: mov 0x18(%ebp),%eax | |
0xbb93ec1e <+30>: mov %eax,-0x2c(%ebp) | |
0xbb93ec21 <+33>: mov -0x318(%ebx),%ecx | |
0xbb93ec27 <+39>: mov (%ecx),%eax | |
0xbb93ec29 <+41>: mov %eax,-0x1c(%ebp) | |
0xbb93ec2c <+44>: xor %eax,%eax | |
0xbb93ec2e <+46>: movzbl 0x1(%esi),%eax | |
0xbb93ec32 <+50>: cmp $0x10,%al | |
0xbb93ec34 <+52>: je 0xbb93ecef <getnameinfo+239> | |
0xbb93ec3a <+58>: ja 0xbb93ec5e <getnameinfo+94> | |
0xbb93ec3c <+60>: cmp $0x2,%al | |
0xbb93ec3e <+62>: je 0xbb93ec66 <getnameinfo+102> | |
0xbb93ec40 <+64>: mov $0x5,%eax | |
0xbb93ec45 <+69>: mov -0x318(%ebx),%edx | |
0xbb93ec4b <+75>: mov -0x1c(%ebp),%ecx | |
0xbb93ec4e <+78>: xor (%edx),%ecx | |
0xbb93ec50 <+80>: jne 0xbb93ef60 <getnameinfo+864> | |
0xbb93ec56 <+86>: add $0x4c,%esp | |
0xbb93ec59 <+89>: pop %ebx | |
0xbb93ec5a <+90>: pop %esi | |
0xbb93ec5b <+91>: pop %edi | |
0xbb93ec5c <+92>: pop %ebp | |
0xbb93ec5d <+93>: ret | |
0xbb93ec5e <+94>: cmp $0x12,%al | |
0xbb93ec60 <+96>: je 0xbb93ec91 <getnameinfo+145> | |
0xbb93ec62 <+98>: cmp $0x18,%al | |
0xbb93ec64 <+100>: jne 0xbb93ec40 <getnameinfo+64> | |
0xbb93ec66 <+102>: mov 0x20(%ebp),%eax | |
0xbb93ec69 <+105>: mov %eax,0x10(%esp) | |
0xbb93ec6d <+109>: mov 0x1c(%ebp),%eax | |
0xbb93ec70 <+112>: mov %eax,0xc(%esp) | |
0xbb93ec74 <+116>: mov -0x2c(%ebp),%ecx | |
0xbb93ec77 <+119>: mov %ecx,0x8(%esp) | |
0xbb93ec7b <+123>: mov 0x14(%ebp),%eax | |
0xbb93ec7e <+126>: mov %eax,0x4(%esp) | |
0xbb93ec82 <+130>: mov %edx,(%esp) | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb93ec85 <+133>: mov 0xc(%ebp),%edx | |
0xbb93ec88 <+136>: mov %esi,%eax | |
0xbb93ec8a <+138>: call 0xbb93e741 <getpeername+1009> | |
=> 0xbb93ec8f <+143>: jmp 0xbb93ec45 <getnameinfo+69> | |
0xbb93ec91 <+145>: mov -0x2c(%ebp),%edi | |
0xbb93ec94 <+148>: test %edi,%edi | |
0xbb93ec96 <+150>: je 0xbb93eca5 <getnameinfo+165> | |
0xbb93ec98 <+152>: mov 0x1c(%ebp),%ecx | |
0xbb93ec9b <+155>: test %ecx,%ecx | |
0xbb93ec9d <+157>: je 0xbb93eca5 <getnameinfo+165> | |
0xbb93ec9f <+159>: mov -0x2c(%ebp),%ecx | |
0xbb93eca2 <+162>: movb $0x0,(%ecx) | |
0xbb93eca5 <+165>: movzbl 0x5(%esi),%eax | |
0xbb93eca9 <+169>: test %al,%al | |
0xbb93ecab <+171>: jne 0xbb93ecb8 <getnameinfo+184> | |
0xbb93ecad <+173>: cmpw $0x0,0x6(%esi) | |
0xbb93ecb2 <+178>: je 0xbb93ee2c <getnameinfo+556> | |
0xbb93ecb8 <+184>: movzbl 0x4(%esi),%ecx | |
0xbb93ecbc <+188>: cmp $0x90,%cl | |
0xbb93ecbf <+191>: je 0xbb93eda9 <getnameinfo+425> | |
0xbb93ecc5 <+197>: cmp $0xce,%cl | |
0xbb93ecc8 <+200>: je 0xbb93edd3 <getnameinfo+467> | |
0xbb93ecce <+206>: movzbl 0x6(%esi),%ecx | |
0xbb93ecd2 <+210>: movzbl %al,%eax | |
0xbb93ecd5 <+213>: lea 0x8(%esi,%eax,1),%eax | |
0xbb93ecd9 <+217>: mov 0x14(%ebp),%esi | |
0xbb93ecdc <+220>: mov %esi,0x4(%esp) | |
0xbb93ece0 <+224>: mov %edx,(%esp) | |
0xbb93ece3 <+227>: mov %ecx,%edx | |
0xbb93ece5 <+229>: call 0xbb93e370 <getpeername+32> | |
0xbb93ecea <+234>: jmp 0xbb93ec45 <getnameinfo+69> | |
0xbb93ecef <+239>: mov -0x2c(%ebp),%edi | |
0xbb93ecf2 <+242>: test %edi,%edi | |
0xbb93ecf4 <+244>: je 0xbb93ecfd <getnameinfo+253> | |
0xbb93ecf6 <+246>: mov 0x1c(%ebp),%ecx | |
0xbb93ecf9 <+249>: test %ecx,%ecx | |
0xbb93ecfb <+251>: jne 0xbb93ed5d <getnameinfo+349> | |
0xbb93ecfd <+253>: movzbl 0x6(%esi),%ecx | |
0xbb93ed01 <+257>: movzwl 0x4(%esi),%eax | |
0xbb93ed05 <+261>: ror $0x8,%ax | |
0xbb93ed09 <+265>: mov %ecx,0x10(%esp) | |
0xbb93ed0d <+269>: movzwl %ax,%eax | |
0xbb93ed10 <+272>: mov %eax,0xc(%esp) | |
0xbb93ed14 <+276>: lea -0xb53d(%ebx),%eax | |
0xbb93ed1a <+282>: mov %eax,0x8(%esp) | |
0xbb93ed1e <+286>: mov 0x14(%ebp),%ecx | |
0xbb93ed21 <+289>: mov %ecx,0x4(%esp) | |
0xbb93ed25 <+293>: mov %edx,(%esp) | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb93ed28 <+296>: mov %edx,-0x34(%ebp) | |
0xbb93ed2b <+299>: call 0xbb89544c <snprintf@plt> | |
0xbb93ed30 <+304>: mov %eax,%edi | |
0xbb93ed32 <+306>: test %eax,%eax | |
0xbb93ed34 <+308>: mov -0x34(%ebp),%edx | |
0xbb93ed37 <+311>: js 0xbb93ed42 <getnameinfo+322> | |
0xbb93ed39 <+313>: cmp %eax,0x14(%ebp) | |
0xbb93ed3c <+316>: ja 0xbb93ee63 <getnameinfo+611> | |
0xbb93ed42 <+322>: xor %edi,%edi | |
0xbb93ed44 <+324>: test %edx,%edx | |
0xbb93ed46 <+326>: je 0xbb93ed9f <getnameinfo+415> | |
0xbb93ed48 <+328>: mov 0x14(%ebp),%eax | |
0xbb93ed4b <+331>: test %eax,%eax | |
0xbb93ed4d <+333>: je 0xbb93ed9f <getnameinfo+415> | |
0xbb93ed4f <+335>: movb $0x0,(%edx,%edi,1) | |
0xbb93ed53 <+339>: mov $0x6,%eax | |
0xbb93ed58 <+344>: jmp 0xbb93ec45 <getnameinfo+69> | |
0xbb93ed5d <+349>: movzbl 0x2(%esi),%eax | |
0xbb93ed61 <+353>: mov %eax,0xc(%esp) | |
0xbb93ed65 <+357>: lea -0xad85(%ebx),%eax | |
0xbb93ed6b <+363>: mov %eax,0x8(%esp) | |
0xbb93ed6f <+367>: movl $0x8,0x4(%esp) | |
0xbb93ed77 <+375>: lea -0x24(%ebp),%ecx | |
0xbb93ed7a <+378>: mov %ecx,-0x30(%ebp) | |
0xbb93ed7d <+381>: mov %ecx,(%esp) | |
0xbb93ed80 <+384>: mov %edx,-0x34(%ebp) | |
0xbb93ed83 <+387>: call 0xbb89544c <snprintf@plt> | |
0xbb93ed88 <+392>: xor %eax,%eax | |
0xbb93ed8a <+394>: mov $0xffffffff,%ecx | |
0xbb93ed8f <+399>: mov -0x30(%ebp),%edi | |
0xbb93ed92 <+402>: repnz scas %es:(%edi),%al | |
0xbb93ed94 <+404>: not %ecx | |
0xbb93ed96 <+406>: cmp %ecx,0x1c(%ebp) | |
0xbb93ed99 <+409>: jae 0xbb93eefd <getnameinfo+765> | |
0xbb93ed9f <+415>: mov $0x6,%eax | |
0xbb93eda4 <+420>: jmp 0xbb93ec45 <getnameinfo+69> | |
0xbb93eda9 <+425>: cmpb $0x7,0x6(%esi) | |
0xbb93edad <+429>: jbe 0xbb93ec40 <getnameinfo+64> | |
0xbb93edb3 <+435>: movzbl %al,%eax | |
0xbb93edb6 <+438>: lea 0x8(%esi,%eax,1),%eax | |
0xbb93edba <+442>: mov 0x14(%ebp),%esi | |
0xbb93edbd <+445>: mov %esi,0x4(%esp) | |
0xbb93edc1 <+449>: mov %edx,(%esp) | |
0xbb93edc4 <+452>: mov $0x8,%edx | |
0xbb93edc9 <+457>: call 0xbb93e370 <getpeername+32> | |
0xbb93edce <+462>: jmp 0xbb93ec45 <getnameinfo+69> | |
0xbb93edd3 <+467>: cmpb $0x1,0x6(%esi) | |
0xbb93edd7 <+471>: jbe 0xbb93ec40 <getnameinfo+64> | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb93eddd <+477>: movzbl %al,%eax | |
0xbb93ede0 <+480>: movzbl 0x9(%esi,%eax,1),%ecx | |
0xbb93ede5 <+485>: test %cl,%cl | |
0xbb93ede7 <+487>: je 0xbb93eed0 <getnameinfo+720> | |
0xbb93eded <+493>: movsbl 0x8(%esi,%eax,1),%eax | |
0xbb93edf2 <+498>: mov %eax,0x10(%esp) | |
0xbb93edf6 <+502>: movsbl %cl,%ecx | |
0xbb93edf9 <+505>: mov %ecx,0xc(%esp) | |
0xbb93edfd <+509>: lea -0xb53d(%ebx),%eax | |
0xbb93ee03 <+515>: mov %eax,0x8(%esp) | |
0xbb93ee07 <+519>: mov 0x14(%ebp),%ecx | |
0xbb93ee0a <+522>: mov %ecx,0x4(%esp) | |
0xbb93ee0e <+526>: mov %edx,(%esp) | |
0xbb93ee11 <+529>: mov %edx,-0x34(%ebp) | |
0xbb93ee14 <+532>: call 0xbb89544c <snprintf@plt> | |
0xbb93ee19 <+537>: mov -0x34(%ebp),%edx | |
0xbb93ee1c <+540>: test %eax,%eax | |
0xbb93ee1e <+542>: js 0xbb93ee5b <getnameinfo+603> | |
0xbb93ee20 <+544>: cmp %eax,0x14(%ebp) | |
0xbb93ee23 <+547>: jbe 0xbb93ee5b <getnameinfo+603> | |
0xbb93ee25 <+549>: xor %eax,%eax | |
0xbb93ee27 <+551>: jmp 0xbb93ec45 <getnameinfo+69> | |
0xbb93ee2c <+556>: movzwl 0x2(%esi),%eax | |
0xbb93ee30 <+560>: mov %eax,0xc(%esp) | |
0xbb93ee34 <+564>: lea -0xad82(%ebx),%eax | |
0xbb93ee3a <+570>: mov %eax,0x8(%esp) | |
0xbb93ee3e <+574>: mov 0x14(%ebp),%esi | |
0xbb93ee41 <+577>: mov %esi,0x4(%esp) | |
0xbb93ee45 <+581>: mov %edx,(%esp) | |
0xbb93ee48 <+584>: mov %edx,-0x34(%ebp) | |
0xbb93ee4b <+587>: call 0xbb89544c <snprintf@plt> | |
0xbb93ee50 <+592>: test %eax,%eax | |
0xbb93ee52 <+594>: mov -0x34(%ebp),%edx | |
0xbb93ee55 <+597>: js 0xbb93ee5b <getnameinfo+603> | |
0xbb93ee57 <+599>: cmp %eax,%esi | |
0xbb93ee59 <+601>: jae 0xbb93ee25 <getnameinfo+549> | |
0xbb93ee5b <+603>: movb $0x0,(%edx) | |
0xbb93ee5e <+606>: jmp 0xbb93ed9f <getnameinfo+415> | |
0xbb93ee63 <+611>: movzbl 0x8(%esi),%eax | |
0xbb93ee67 <+615>: test %al,%al | |
0xbb93ee69 <+617>: jne 0xbb93ef1e <getnameinfo+798> | |
0xbb93ee6f <+623>: movzwl 0xa(%esi),%ecx | |
0xbb93ee73 <+627>: test %cx,%cx | |
0xbb93ee76 <+630>: je 0xbb93ee25 <getnameinfo+549> | |
0xbb93ee78 <+632>: movzwl 0xc(%esi),%eax | |
0xbb93ee7c <+636>: ror $0x8,%ax | |
0xbb93ee80 <+640>: ror $0x8,%cx | |
0xbb93ee84 <+644>: movzwl %ax,%eax | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb93ee87 <+647>: mov %eax,0x10(%esp) | |
0xbb93ee8b <+651>: movzwl %cx,%ecx | |
0xbb93ee8e <+654>: mov %ecx,0xc(%esp) | |
0xbb93ee92 <+658>: lea -0xad91(%ebx),%eax | |
0xbb93ee98 <+664>: mov %eax,0x8(%esp) | |
0xbb93ee9c <+668>: mov 0x14(%ebp),%eax | |
0xbb93ee9f <+671>: sub %edi,%eax | |
0xbb93eea1 <+673>: mov %eax,0x4(%esp) | |
0xbb93eea5 <+677>: lea (%edx,%edi,1),%eax | |
0xbb93eea8 <+680>: mov %eax,(%esp) | |
0xbb93eeab <+683>: mov %edx,-0x34(%ebp) | |
0xbb93eeae <+686>: call 0xbb89544c <snprintf@plt> | |
0xbb93eeb3 <+691>: test %eax,%eax | |
0xbb93eeb5 <+693>: mov -0x34(%ebp),%edx | |
0xbb93eeb8 <+696>: js 0xbb93ed44 <getnameinfo+324> | |
0xbb93eebe <+702>: add %edi,%eax | |
0xbb93eec0 <+704>: cmp %eax,0x14(%ebp) | |
0xbb93eec3 <+707>: jbe 0xbb93ed44 <getnameinfo+324> | |
0xbb93eec9 <+713>: xor %eax,%eax | |
0xbb93eecb <+715>: jmp 0xbb93ec45 <getnameinfo+69> | |
0xbb93eed0 <+720>: movsbl 0x8(%esi,%eax,1),%eax | |
0xbb93eed5 <+725>: mov %eax,0xc(%esp) | |
0xbb93eed9 <+729>: lea -0xad85(%ebx),%eax | |
0xbb93eedf <+735>: mov %eax,0x8(%esp) | |
0xbb93eee3 <+739>: mov 0x14(%ebp),%eax | |
0xbb93eee6 <+742>: mov %eax,0x4(%esp) | |
0xbb93eeea <+746>: mov %edx,(%esp) | |
0xbb93eeed <+749>: mov %edx,-0x34(%ebp) | |
0xbb93eef0 <+752>: call 0xbb89544c <snprintf@plt> | |
0xbb93eef5 <+757>: mov -0x34(%ebp),%edx | |
0xbb93eef8 <+760>: jmp 0xbb93ee1c <getnameinfo+540> | |
0xbb93eefd <+765>: mov 0x1c(%ebp),%eax | |
0xbb93ef00 <+768>: mov %eax,0x8(%esp) | |
0xbb93ef04 <+772>: mov -0x30(%ebp),%ecx | |
0xbb93ef07 <+775>: mov %ecx,0x4(%esp) | |
0xbb93ef0b <+779>: mov -0x2c(%ebp),%eax | |
0xbb93ef0e <+782>: mov %eax,(%esp) | |
0xbb93ef11 <+785>: call 0xbb89683c <_strlcpy@plt> | |
0xbb93ef16 <+790>: mov -0x34(%ebp),%edx | |
0xbb93ef19 <+793>: jmp 0xbb93ecfd <getnameinfo+253> | |
0xbb93ef1e <+798>: movzbl %al,%eax | |
0xbb93ef21 <+801>: mov %eax,0xc(%esp) | |
0xbb93ef25 <+805>: lea -0xad9b(%ebx),%eax | |
0xbb93ef2b <+811>: mov %eax,0x8(%esp) | |
0xbb93ef2f <+815>: mov 0x14(%ebp),%eax | |
0xbb93ef32 <+818>: sub %edi,%eax | |
0xbb93ef34 <+820>: mov %eax,0x4(%esp) | |
0xbb93ef38 <+824>: lea (%edx,%edi,1),%eax | |
---Type <return> to continue, or q <return> to quit--- | |
0xbb93ef3b <+827>: mov %eax,(%esp) | |
0xbb93ef3e <+830>: call 0xbb89544c <snprintf@plt> | |
0xbb93ef43 <+835>: test %eax,%eax | |
0xbb93ef45 <+837>: mov -0x34(%ebp),%edx | |
0xbb93ef48 <+840>: js 0xbb93ed44 <getnameinfo+324> | |
0xbb93ef4e <+846>: add %edi,%eax | |
0xbb93ef50 <+848>: cmp %eax,0x14(%ebp) | |
0xbb93ef53 <+851>: jbe 0xbb93ed44 <getnameinfo+324> | |
0xbb93ef59 <+857>: mov %eax,%edi | |
0xbb93ef5b <+859>: jmp 0xbb93ee6f <getnameinfo+623> | |
0xbb93ef60 <+864>: call 0xbb896adc <__stack_chk_fail_local@plt> | |
End of assembler dump. | |
(gdb) f 10 | |
#10 0xbb82b0a6 in nogvl_getnameinfo (arg=0xb9efe6ec) at raddrinfo.c:202 | |
202 return getnameinfo(ptr->sa, ptr->salen, | |
(gdb) info registers | |
eax 0xbb996da4 -1147572828 | |
ecx 0x1 1 | |
edx 0x0 0 | |
ebx 0xbb8332e4 -1149029660 | |
esp 0xb9efe63c 0xb9efe63c | |
ebp 0xb9efe694 0xb9efe694 | |
esi 0xb9efeb40 -1175459008 | |
edi 0x400 1024 | |
eip 0xbb82b0a6 0xbb82b0a6 <nogvl_getnameinfo+112> | |
eflags 0x210202 [ IF RF ID ] | |
cs 0x17 23 | |
ss 0x1f 31 | |
ds 0x1f 31 | |
es 0x1f 31 | |
fs *value not available* | |
gs *value not available* | |
(gdb) rp arg | |
T_HASH: len=0 $2 = (struct RHash *) 0xb9efe6ec | |
(gdb) l | |
197 | |
198 static VALUE | |
199 nogvl_getnameinfo(void *arg) | |
200 { | |
201 struct getnameinfo_arg *ptr = arg; | |
202 return getnameinfo(ptr->sa, ptr->salen, | |
203 ptr->host, (socklen_t)ptr->hostlen, | |
204 ptr->serv, (socklen_t)ptr->servlen, | |
205 ptr->flags); | |
206 } | |
(gdb) p *ptr | |
$3 = {sa = 0xb9efef88, salen = 16, host = 0xb9efeb40 "", hostlen = 1024, serv = 0x0, servlen = 0, | |
flags = 0} | |
(gdb) disas | |
Dump of assembler code for function nogvl_getnameinfo: | |
0xbb82b036 <+0>: push %ebp | |
0xbb82b037 <+1>: mov %esp,%ebp | |
0xbb82b039 <+3>: push %edi | |
0xbb82b03a <+4>: push %esi | |
0xbb82b03b <+5>: push %ebx | |
0xbb82b03c <+6>: sub $0x4c,%esp | |
0xbb82b03f <+9>: call 0xbb82b044 <nogvl_getnameinfo+14> | |
0xbb82b044 <+14>: pop %ebx | |
0xbb82b045 <+15>: add $0x82a0,%ebx | |
0xbb82b04b <+21>: mov 0x8(%ebp),%eax | |
0xbb82b04e <+24>: mov %eax,-0x1c(%ebp) | |
0xbb82b051 <+27>: mov -0x1c(%ebp),%eax | |
0xbb82b054 <+30>: mov 0x18(%eax),%ecx | |
0xbb82b057 <+33>: mov -0x1c(%ebp),%eax | |
0xbb82b05a <+36>: mov 0x14(%eax),%eax | |
0xbb82b05d <+39>: mov %eax,-0x2c(%ebp) | |
0xbb82b060 <+42>: mov -0x1c(%ebp),%eax | |
0xbb82b063 <+45>: mov 0x10(%eax),%eax | |
0xbb82b066 <+48>: mov %eax,-0x30(%ebp) | |
0xbb82b069 <+51>: mov -0x1c(%ebp),%eax | |
0xbb82b06c <+54>: mov 0xc(%eax),%edi | |
0xbb82b06f <+57>: mov -0x1c(%ebp),%eax | |
0xbb82b072 <+60>: mov 0x8(%eax),%esi | |
0xbb82b075 <+63>: mov -0x1c(%ebp),%eax | |
0xbb82b078 <+66>: mov 0x4(%eax),%edx | |
0xbb82b07b <+69>: mov -0x1c(%ebp),%eax | |
0xbb82b07e <+72>: mov (%eax),%eax | |
0xbb82b080 <+74>: mov %ecx,0x18(%esp) | |
0xbb82b084 <+78>: mov -0x2c(%ebp),%ecx | |
0xbb82b087 <+81>: mov %ecx,0x14(%esp) | |
0xbb82b08b <+85>: mov -0x30(%ebp),%ecx | |
0xbb82b08e <+88>: mov %ecx,0x10(%esp) | |
0xbb82b092 <+92>: mov %edi,0xc(%esp) | |
0xbb82b096 <+96>: mov %esi,0x8(%esp) | |
0xbb82b09a <+100>: mov %edx,0x4(%esp) | |
0xbb82b09e <+104>: mov %eax,(%esp) | |
0xbb82b0a1 <+107>: call 0xbb8107bc <getnameinfo@plt> | |
=> 0xbb82b0a6 <+112>: add $0x4c,%esp | |
0xbb82b0a9 <+115>: pop %ebx | |
0xbb82b0aa <+116>: pop %esi | |
0xbb82b0ab <+117>: pop %edi | |
0xbb82b0ac <+118>: pop %ebp | |
0xbb82b0ad <+119>: ret | |
End of assembler dump. |
nsdispatch 側の問題ぽい?
https://twitter.com/_enami/status/202274934876155904
Index: lib/libc/net/nsdispatch.c
===================================================================
RCS file: /cvsroot/src/lib/libc/net/nsdispatch.c,v
retrieving revision 1.37
diff -u -r1.37 nsdispatch.c
--- lib/libc/net/nsdispatch.c 13 Mar 2012 21:13:42 -0000 1.37
+++ lib/libc/net/nsdispatch.c 15 May 2012 05:59:09 -0000
@@ -646,7 +646,7 @@
return (NS_UNAVAIL);
}
- rwlock_rdlock(&_nslock);
+ rwlock_wrlock(&_nslock);
key.name = database;
dbt = bsearch(&key, _nsmap, _nsmapsize, sizeof(*_nsmap), _nsdbtcmp);
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
下記のパッチで segv しなくなったが何でかわからん