A PVS-Studio statikus forráskód-elemező gyártója a FreeBSD kernelt elemezte

Címkék

FreeBSD vs. PVS

A FreeBSD projekt számolt be arról, hogy Svyatoslav Razmyslov, a PVS-Studio statikus forráskód-elemző szoftver mögött álló csapat egyik tagja egy cikket tett elérhetővé a FreeBSD kernel ellenőrzéséről. A cikkben számos olyan problémára mutatnak rá, amelyet a FreeBSD fejlesztőknek érdemes lenne szemügyre venniük és alkalmasint javítaniuk. A FreeBSD fejlesztők megkapták az elemzés nyomán született teljes warning listát, így amellett, hogy az elemző szoftver gyártója az elemzéssel reklámhoz jutott, a FreeBSD projekt is profitálhat belőle.

A cikk elérhető itt.

Hozzászólások

az most komolyan egy darth vader egyszarvú? :D És az ördög van a jó oldalon?

Hű basszus, vannak benne meredek dolgok.

Nem néztem a programot, de a teljes listában elég sok a fals pozitív a FreeBSD-s visszajelzések alapján. Ennek ellenére érthetetlen, hogy a clang és gcc, meg a coverity (amivel szintén ellenőrzik folyamatosan a forráskódot) miért nem szúrt ki olyan meredek dolgokat, minthogy a kernel IPSEC kódjának PFKEYv2 feldolgozó függvényében olyan ellenőrzés van, amely mindig hamis eredményt ad... (vagy ha más is jelezte ezt, akkor miért nem javították?)


int
key_parse(struct mbuf *m, struct socket *so)
{
[...]
        if ((m->m_flags & M_PKTHDR) == 0 ||
            m->m_pkthdr.len != m->m_pkthdr.len)
                ipseclog((LOG_DEBUG, "%s: invalid message length.\n",__func__));
                PFKEYSTAT_INC(out_invlen);
                error = EINVAL;
                goto senderror;
        }

De van sok más szörnyűség is. Random seed általi tömb túlírás és más érdekességek. A blog post bemutat néhányat, érdemes elolvasni.

Köszi, megnézem.

Amit írtál példát, hibát nem ad, inkább fölösleges logikai vagy esetén. És még mindig jobb, mintha egy mindig igaz feltétel lenne ott... De gáz, ez tény.

Én is láttam, hogy sok a fals pozitív.

"Belépés díjtalan, kilépés bizonytalan."
"Vajon mit várok a sorstól, ha hányok az édestől, és izzadok a sóstól."

Lehet h a glibc-re kellett volna lefuttatni...

One more interesting moment. We detected the same error in the code of Haiku operating system (see the section "Warnings #17, #18") No idea, who borrowed the "if_ae.c" file, but this error appears after Copy-Paste.

--
trey @ gépház