Well, I spent some time digging around in
wpa_driver_wext_get_scan_results, and while it's scary to read, the
overflow isn't obvious yet.  Can you try another gdb recipe?  This one
is quite a bit more exciting -- it tries to break out the moment the
stack gets trashed.  Here are the commands, after doing the  "sudo gdb
/sbin/wpa_supplicant $(pidof wpa_supplicant)":

br *0x08081964
br *0x08081a3a

set variable $count = 2
commands 1
silent
set variable $cow = (unsigned long*)($ebp - 0x14)
watch *$cow
cont
end

commands 2
silent
set variable $count = $count + 1
delete $count
cont
end

cont

bt
info reg
x/10i $eip


If I got this aligned correctly, this should set up a hardware memory 
breakpoint when wpa_driver_wext_get_scan_results is called (and tears it down 
just before it exits).  When the watchpoint triggers, the bt/info reg/etc 
should give us the details about the instruction immediately after the 
offending action.  Each time wpa_driver_wext_get_scan_results is called, you'll 
see something like:
  Hardware watchpoint 15: *$cow
You can ignore those.  We're looking for:
  Old value = 75012294
 New value = 75012241
 0x......
 (gdb) 

I wonder if the issue is actually with the wireless driver itself, and
that it might be clobbering the userspace buffer.  We'll see.  :)

-- 
"*** stack smashing detected ***: /sbin/wpa_supplicant terminated" with iwl4965
https://bugs.launchpad.net/bugs/138873
You received this bug notification because you are a member of Ubuntu
Bugs, which is the bug contact for Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to