[Kstars-devel] Suspicious Code - Need Review - Patch

Thorsten Röder thorsten.roeder at weihenstephan.org
Wed Apr 26 23:19:20 CEST 2006


hmmm, with the patch this time.

Thorsten
 

> -----Original Message-----
> From: Thorsten Röder [mailto:thorsten.roeder at weihenstephan.org] 
> Sent: Wednesday, April 26, 2006 11:18 PM
> To: kstars-devel at kde.org
> Cc: 'Thorsten Röder'
> Subject: Suspicious Code - Need Review
> 
> Hi,
> 
> Christoph Bartoschek did a great job
> finding a lots of suspicious lines of code in 3.5.2 and 
> posted these issues on the kde-core-devel list.
> 
> I tried to fix the mentioned problems in parts that "belongs" 
> to kstars.
> Please have a look at the attached patch, would be great if 
> someone can give me feedback about this, so I can commit that 
> if its ok.
> 
> Question: How to deal with the other problems "belonging" to 
> the INDI library itself? Is this library an external library 
> maintained by someone not on this list? Or is the INDI 
> library developed with kstars?
> 
> 
> These are/were the problems Christoph Bartoschek found:
> 
> ___ IN KSTARS___, should be fixed with the attached patch:
> 
> > - kstars/kstars/fitshistogram.cpp:148
> > 
> > If binSize is 0 but buffer is not NULL, then line 144 is 
> not executed 
> > and line 148 has a division by 0.
> > 
> Fixed.
> > - kstars/kstars/fitsprocess.cpp:147
> > 
> > Is narray leaking here?  If yes, why not using std::vector?
> >
> Fixed.
> > - kstars/kstars/indidevice.cpp:874
> > - kstars/kstars/indidevice.cpp:885 (similar)
> > - kstars/kstars/indidevice.cpp:898 (similar)
> > 
> > In line 872 you delete pp and use it here again.
> > 
> Fixed. PLEASE INVESTIGATE PATCH.
> > - kstars/kstars/fitsviewer.cpp:308
> > 
> > If buffer is != NULL here, than the memory is leaking here. 
> > std::vector is beffer for such tasks.
> > 
> Fixed.
> > - kstars/kstars/indistd.cpp:492
> > 
> > Use delete [] here or better a std::string or QString for 
> tempPrefix.
> > 
> Fixed.
> > - kstars/kstars/kstarsdata.cpp:553
> > 
> > If ok is true but nn != 2, then you delete seg in line 546. 
> > But you use it again in line 553.
> > 
> Fixed. PLEASE INVESTIGATE PATCH.
> > ------------------------------------
> > Problems involving the NULL pointer:
> > ------------------------------------
> > 
> > - kstars/kstars/kswizard.cpp:143
> > 
> > If the if condition in line 134 is false, then line 143 crashes.
> > 
> Fixed. PLEASE INVESTIGATE PATCH.
> > -----------------------------------------------------------------
> > Lines where boolean expressions are used in non-boolean contexts:
> > 
> > I suspect that at least the lines marked with !!! are bugs
> > -----------------------------------------------------------------
> > 
> > - kstars/kstars/kstarsdata.cpp:1663, 1675
> Fixed.
> 
> 
> 
> ___ IN INDI library___, not yet fixed:
> > - kstars/kstars/indi/apmount.cpp:657
> > - kstars/kstars/indi/apmount.cpp:658
> >
> > tmtexts and tmtp have only 1 byte allocated, but 4 bytes (32bit
> > platforms) are assigned here. Why not using std::vector and 
> > std::string for such tasks? Is the memory also leaking in 
> lines 667, 
> > 668?
> > 
> > - kstars/kstars/indi/apogee/ApnCamera.cpp:983
> > 
> > If no case is selected in line 967, then RegVal is 
> uninitialized here.
> > 
> > - kstars/kstars/indi/apogee/ApogeeUsbLinuxForKernel.cpp:354
> > 
> > retval is used uninitialized.
> > 
> > - kstars/kstars/indi/apogee/ApogeeUsbLinuxForKernel.cpp:367
> > 
> > Success is not set, if the loop in line 348 is not entered.
> > 
> > - kstars/kstars/indi/v4ldriver.cpp:662
> > 
> > Use delete [] here.  Or better a std::vector<unsigned char>. 
> > This way you prevent the memory leaks in lines 625 and 641.
> > 
> > - kstars/kstars/indi/v4lphilips.cpp:602
> > 
> > The index 5 is out of bounds of this array.
> > 
> > - kstars/kstars/indi/sbigccd.cpp:567
> > - kstars/kstars/indi/sbigccd.cpp:590
> > - kstars/kstars/indi/sbigccd.cpp:578
> > - kstars/kstars/indi/sbigccd.cpp:559 (only fitsData)
> > 
> > fitsData and compressedData are leaking memory here. Why not using 
> > std::vector<unsigned char>?
> > 
> > - kstars/kstars/indi/sbigccd.cpp:602
> > - kstars/kstars/indi/apogee_ppi.cpp:679 (similar)
> > 
> > After this function finished. imageB.blob points to freed 
> memory. Are 
> > there memory leaks, when the function returns to early in 
> the second 
> > case?
> > 
> > - kstars/kstars/indi/fli/libfli-mem.c:75
> > 
> > Buffer overflow. In line 68 num is set to 2*allocated.total. 
> > Then allocated.pointers gets a buffer for num pointers in 
> line 70. In 
> > line 75 you start at  position allocate.total and overwrite 
> num (= 2 *
> > allocated.total) elements with 0. The last allocated.total 
> elements do 
> > not belong to the buffer.
> > 
> > - kstars/kstars/indi/fli/libfli-filter-focuser.c:467
> > 
> > abs looses precision here. Maybe you want to use labs.
> > 
> > - kstars/kstars/indi/fli_ccd.c:898
> > - kstars/kstars/indi/fli_ccd.c:908
> > 
> > The memory pointed to by fitsData and compressedData is 
> leaking here.
> > 
> >  - kstars/kstars/indi/temmadriver.c:73
> >  
> >  Buffer overflow.  PortT->text has place for 10 chars, but strcpy 
> > copies
> >  11 into it. Note that strcpy adds the \0.
> > 
> >  kstars/kstars/indi/celestronprotocol.c:562
> >  
> > The loop is executed at most once.
> > 
> > - kstars/kstars/indi/webcam/v4l2_base.cpp:1116
> > 
> > num_ctrls is leaking here.
> >
> TR BTW: numbers is leaking here too.
> > -----------------------------------------------------------------
> > Lines where boolean expressions are used in non-boolean contexts:
> > 
> > I suspect that at least the lines marked with !!! are bugs
> > -----------------------------------------------------------------
> > 
> > - kstars/kstars/indi/apogee/CameraIO_LinuxPPI.cpp:251, 270, 300
> > - kstars/kstars/indi/apogee/CameraIO_LinuxPCI.cpp:301, 320, 348
> > - kstars/kstars/indi/apogee/CameraIO_LinuxISA.cpp:247, 266, 294
> 
> Thorsten
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: kstars_suspicious_3.5.2.diff
Type: application/octet-stream
Size: 5072 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kstars-devel/attachments/20060426/eb07a843/attachment.obj 


More information about the Kstars-devel mailing list