checked sources of xorg-server 1.7.0 with static code analysis tool cppcheck
Jeremy Huddleston
jeremyhu at freedesktop.org
Mon Oct 5 10:45:52 PDT 2009
On Oct 3, 2009, at 03:53, Michel Dänzer wrote:
> On Fri, 2009-10-02 at 18:25 -0700, Jeremy Huddleston wrote:
>> On Oct 2, 2009, at 16:17, Michel Dänzer wrote:
>>
>>> On Fri, 2009-10-02 at 23:10 +0200, Martin Ettl wrote:
>>>>
>>>> diff --git a/exa/exa_classic.c b/exa/exa_classic.c
>>>> index 1eff570..c9c7534 100644
>>>> --- a/exa/exa_classic.c
>>>> +++ b/exa/exa_classic.c
>>>> @@ -144,14 +144,14 @@ Bool
>>>> exaModifyPixmapHeader_classic(PixmapPtr pPixmap, int width, int
>>>> height, int depth,
>>>> int bitsPerPixel, int devKind, pointer
>>>> pPixData)
>>>> {
>>>> + if (!pPixmap)
>>>> + return FALSE;
>>>> +
>>>> ScreenPtr pScreen = pPixmap->drawable.pScreen;
>>>> ExaScreenPrivPtr pExaScr;
>>>> ExaPixmapPrivPtr pExaPixmap;
>>>> Bool ret;
>>>>
>>>> - if (!pPixmap)
>>>> - return FALSE;
>>>> -
>>>> pExaScr = ExaGetScreenPriv(pScreen);
>>>> pExaPixmap = ExaGetPixmapPriv(pPixmap);
>>>>
>>> ...
>>> Mixing code and declarations is a C99 feature, and I'm not sure we
>>> require a C99 compiler yet. I'm not sure that that these tests serve
>>> any
>>> real purpose, they can probably just be removed.
>>
>> Well, they serve a purpose, and I'd like to keep them in for sanity
>> purposes.
>
> What purpose is that? If these functions were actually called with a
> NULL PixmapPtr, surely the current code would have crashed with a
> segmentation fault.
Right, but the way I look at it:
1) That code was added to git about 6 weeks ago
2) You don't know how that code might be called in the future. Better
safe than sorry.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3333 bytes
Desc: not available
Url : http://lists.x.org/archives/xorg-devel/attachments/20091005/e725cdb1/attachment-0001.bin
More information about the xorg-devel
mailing list