Comment 5 for bug 1979054

Revision history for this message
In , Pinskia (pinskia) wrote :

Reduced testcase:
typedef struct {
    unsigned short offset;
    unsigned short segment;
} far_t;

extern __thread int vm86u[8];
int int33_hooked;
int is_revectored(void);
void log_printf(void);

far_t int33_unrevect(unsigned short gg)
{
    far_t ret = {};
    if (int33_hooked)
        return ret;
    if (is_revectored())
    {
        log_printf();
        __asm__ __volatile__("" : :"m" (vm86u[0]));
    }
    else
    {
        if (gg)
                log_printf();
    }
    ret.segment = 0x0f000;
    ret.offset = 0xf847;
    return ret;
}