소스 검색

fix x32 __set_thread_area failure due to junk in upper bits

the kernel does not properly clear the upper bits of the syscall
argument, so we have to do it before the syscall.
Rich Felker 10 년 전
부모
커밋
2d5c74c21e
1개의 변경된 파일1개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 1
      src/thread/x32/__set_thread_area.s

+ 1 - 1
src/thread/x32/__set_thread_area.s

@@ -3,7 +3,7 @@
 .global __set_thread_area
 .type __set_thread_area,@function
 __set_thread_area:
-	mov %rdi,%rsi           /* shift for syscall */
+	mov %edi,%esi           /* shift for syscall */
 	movl $0x1002,%edi       /* SET_FS register */
 	movl $0x4000009e,%eax          /* set fs segment to */
 	syscall                 /* arch_prctl(SET_FS, arg)*/