Bug 48635 - Разыменование нуля в rpm-4.13.0.1/lib/backend/db3.c
Summary: Разыменование нуля в rpm-4.13.0.1/lib/backend/db3.c
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: rpm (show other bugs)
Version: unstable
Hardware: x86 Linux
: P5 normal
Assignee: placeholder@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-11-30 11:42 MSK by aiburke
Modified: 2023-11-30 11:48 MSK (History)
7 users (show)

See Also:


Attachments
Скриншот фрагмента кода (63.57 KB, image/png)
2023-11-30 11:42 MSK, aiburke
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description aiburke 2023-11-30 11:42:41 MSK
Created attachment 15131 [details]
Скриншот фрагмента кода

В строке 1024 в rpm-4.13.0.1/lib/backend/db3.c происходит сравнение указателя keyp с NULL:
if (keyp) {...}

Далее в условии в строках 1039-1040 указатель keyp передается на вход функции memcmp(key.data, keyp, keylen), где и происходит разыменование.

Имеем следующее:
if (keyp) {...}
...
for (;;) {
    ...
    if (searchType == DBC_PREFIX_SEARCH &&
		    (key.size < keylen || memcmp(key.data, keyp, keylen) != 0))
		break;
    ...
}

Таким образом в memcmp(key.data, keyp, keylen) может произойти разыменование нулевого указателя.

Found by Linux Verification Center (https://portal.linuxtesting.ru/) with SVACE.

Author A.Burke.