[REVIEW] Null pointer passed as an argument to a 'nonnull' parameter in tools/source/generic/poly.cxx

julien2412 serval2412 at yahoo.fr
Thu Feb 16 12:43:42 PST 2012


Hello,

Advancing on the cclang compilation, I noticed this :
/home/julien/compile-libreoffice/libo/tools/source/generic/poly.cxx:91:9:
warning: Null pointer passed as an argument to a 'nonnull' parameter
        memset( mpPointAry, 0, nInitSize );
        ^       ~~~~~~~~~~
1 warning generated.

Here are the lines :
     78 ImplPolygon::ImplPolygon( sal_uInt16 nInitSize, sal_Bool bFlags  )
     79 {
     80     if ( nInitSize )
     81     {
     82         mpPointAry = (Point*)new
char[(sal_uIntPtr)nInitSize*sizeof(Point)];
     83         memset( mpPointAry, 0, (sal_uIntPtr)nInitSize*sizeof(Point)
);
     84     }
     85     else
     86         mpPointAry = NULL;
     87 
     88     if( bFlags )
     89     {
     90         mpFlagAry = new sal_uInt8[ nInitSize ];
     91         memset( mpPointAry, 0, nInitSize );  <<<<< HERE
     92     }
     93     else
     94         mpFlagAry = NULL;
     95 
     96     mnRefCount = 1;
     97     mnPoints = nInitSize;
     98 }

So if I just follow the "pattern", here's an obvious patch :
diff --git a/tools/source/generic/poly.cxx b/tools/source/generic/poly.cxx
index 3c86a7a..4e71b35 100644
--- a/tools/source/generic/poly.cxx
+++ b/tools/source/generic/poly.cxx
@@ -88,7 +88,7 @@ ImplPolygon::ImplPolygon( sal_uInt16 nInitSize, sal_Bool
bFlags  )
     if( bFlags )
     {
         mpFlagAry = new sal_uInt8[ nInitSize ];
-        memset( mpPointAry, 0, nInitSize );
+        memset( mpFlagAry, 0, nInitSize );
     }
     else
         mpFlagAry = NULL;

I suppose it's ok to push this fix on master but would it be useful to push
this on 3.5 branch too ?

Cppcheck updated today doesn't detect this problem so I confirm fdo#39596
could be useful :-)
(could also be a cppcheck enhancement proposal, I didn't check if it had
already been proposed) 

Julien.

--
View this message in context: http://nabble.documentfoundation.org/REVIEW-Null-pointer-passed-as-an-argument-to-a-nonnull-parameter-in-tools-source-generic-poly-cxx-tp3751838p3751838.html
Sent from the Dev mailing list archive at Nabble.com.


More information about the LibreOffice mailing list