forked from KolibriOS/kolibrios
SysFn 18.13 security fix: now apps cannot destroy kernel memory via passing illegal address in ecx
Update docs on SysFn 18.13 git-svn-id: svn://kolibrios.org@8247 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
5d4528238c
commit
4e919c4eb5
@ -956,6 +956,14 @@ picture rb Xsize*Ysize*4 ; 32 бита
|
||||
информация
|
||||
Возвращаемое значение:
|
||||
* функция не возвращает значения
|
||||
но, если указатель в ecx недопустимый, например,
|
||||
регион [ecx, ecx + 9) пересекается с памятью ядра,
|
||||
то тогда функция возвращает -1
|
||||
Замечания:
|
||||
* В данный момент используется только часть буфера размером
|
||||
9 байт. Тем не менее рекомендуется использовать буфер
|
||||
размером 16 байт для будущей совместимости, в будущем могут быть
|
||||
добавлены некоторые поля.
|
||||
Структура буфера:
|
||||
db a,b,c,d для версии a.b.c.d
|
||||
db 0: зарезервировано
|
||||
|
@ -949,6 +949,14 @@ Parameters:
|
||||
the information will be placed
|
||||
Returned value:
|
||||
* function does not return value
|
||||
but if pointer in ecx is illegal, for example,
|
||||
[ecx, ecx + 9) region intersects with kernel memory,
|
||||
then function returns -1
|
||||
Remarks:
|
||||
* At the moment only the part of the buffer by a size
|
||||
9 bytes is used. Nevertheless it is recommended to use
|
||||
16 byte buffer for the future compatibility, in the future
|
||||
some fields can be added.
|
||||
Structure of the buffer:
|
||||
db a,b,c,d for version a.b.c.d
|
||||
db 0: reserved
|
||||
|
@ -2455,11 +2455,21 @@ sysfn_lastkey: ; 18.12 = return 0 (backward compatibility)
|
||||
ret
|
||||
;------------------------------------------------------------------------------
|
||||
sysfn_getversion: ; 18.13 = get kernel ID and version
|
||||
; if given memory address belongs to kernel then error
|
||||
mov eax, ecx
|
||||
mov ebx, version_end-version_inf
|
||||
call is_region_userspace
|
||||
test eax, eax
|
||||
jz .addr_error
|
||||
|
||||
mov edi, ecx
|
||||
mov esi, version_inf
|
||||
mov ecx, version_end-version_inf
|
||||
rep movsb
|
||||
ret
|
||||
.addr_error: ; if given memory address is illegal
|
||||
mov eax, -1
|
||||
ret
|
||||
;------------------------------------------------------------------------------
|
||||
sysfn_waitretrace: ; 18.14 = sys wait retrace
|
||||
;wait retrace functions
|
||||
|
Loading…
Reference in New Issue
Block a user