Changeset e13daa5d in mainline for kernel/arch/amd64/src/syscall.c


Ignore:
Timestamp:
2008-03-19T21:13:49Z (17 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
047aa46
Parents:
20b8bf3
Message:

Fortify ia32 and amd64 kernels against mallicious uspace applications that set
DF prior to entering the kernel. For AMD64 syscalls, we don't use the CLD
instruction, but make use of the SFMASK MSR instead. Simics works fine with
it, but QEMU seems to have a problem.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/amd64/src/syscall.c

    r20b8bf3 re13daa5d  
    6363        /* Mask RFLAGS on syscall
    6464         * - disable interrupts, until we exchange the stack register
    65          *   (mask the IE bit)
     65         *   (mask the IF bit)
     66         * - clear DF so that the string instructions operate in
     67         *   the right direction
    6668         */
    67         write_msr(AMD_MSR_SFMASK, 0x200);
     69        write_msr(AMD_MSR_SFMASK, RFLAGS_IF | RFLAGS_DF);
    6870}
    6971
Note: See TracChangeset for help on using the changeset viewer.