|
|
|
|
|
|
|
|
|
|
xen-bugs
[Xen-bugs] [Bug 1496] New: a suspected race bug at common/gdbstub.c rela
http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=1496
Summary: a suspected race bug at common/gdbstub.c related to
atomic instructions
Product: Xen
Version: unstable
Platform: All
OS/Version: Windows
Status: NEW
Severity: normal
Priority: P3
Component: Unspecified
AssignedTo: xen-bugs@xxxxxxxxxxxxxxxxxxx
ReportedBy: hongshin@xxxxxxxxx
Hi. I am reporting a suspected race bug at __trap_to_gdb()
in xen/common/gdbstub.c of Xen 3.4.1.
I found this bug while I read Xen code. Since I do not have
much background on Xen, it might not be a real bug. But
I hope that this report would be helpful.
Please examine the code and let me know your opinion.
It seems that the function checks whether gdb_ctx->running is 1 or not
by atomic_dec_and_test(&gdb_ctx->running).
If the return value is negative (a.k.a gdb_ctx->running > 1),
it restores the value and then return with error.
However, if there is two threads which execute __trap_to_gdb() concurrently
and if gdb_ctx->running == 2, the following scenario would be possible.
thread 1 | thread 2
--------------------------------------------+------------------------------
if (!atomic_dec_and_test(&gdb_ctx->running))|
|if
(!atomic_dec_and_test(&gdb_ctx->running))
printk("WARNING... |
atomic_inc(&gdb_ctx->running) ; |
return -EBUSY;
| /* gdb_ctx->running is 1 */
--
Configure bugmail:
http://bugzilla.xensource.com/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
_______________________________________________
Xen-bugs mailing list
Xen-bugs@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-bugs
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-bugs] [Bug 1496] New: a suspected race bug at common/gdbstub.c related to atomic instructions,
bugzilla-daemon <=
|
|
|
|
|