checked sources of xorg-server 1.7.0 with static code analysis tool cppcheck
Michel Dänzer
michel at daenzer.net
Sat Oct 3 03:53:06 PDT 2009
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.
--
Earthling Michel Dänzer | http://www.vmware.com
Libre software enthusiast | Debian, X and DRI developer
More information about the xorg-devel
mailing list