gpsd-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gpsd-dev] C Client API Issues


From: Gary E. Miller
Subject: Re: [gpsd-dev] C Client API Issues
Date: Thu, 21 Jul 2016 12:35:47 -0700

Yo Robert!

Good analysis.  Patches anyone?

On Thu, 21 Jul 2016 19:19:45 +0000
Robert Norris <address@hidden> wrote:

> > From: Hal Murray <address@hidden>  
>   
> >address@hidden said:  
> > >gpsd needs a flag so close is a noop if it isn't open.
> >> Wouldn't such a flag would need to go into the gps_data_t
> >> structure?   
> 
> >I was being sloppy when I said "flag".  I don't care how it's
> >implemented as long as duplicate calls to close don't cause any
> >problems.  
> 
> Even though I was on about initialization, currently calling
> gps_close() twice will crash the client with a double free.
> 
> privdata should be explicitly set to NULL after the free in
> gps_socket_close().
> 
> There also looks to be issues with gps_shm_* functions too, such as:
> 
> gps_shm_open() doesn't set gpsdata->privdata to NULL when attaching
> to shared memory fails.
> 
> Thus if you tried to then use gps_shm_read() [which you shouldn't do
> anyway] it would probably crash.
> 
> gps_shm_close() never checks if gpsdata->privdata is NULL, so again
> it would crash the client if used after an unsuccessful open.
> 
> It should be easy to make these more robust against API incorrect use.
> 
> 
> 
>     
> 




RGDS
GARY
---------------------------------------------------------------------------
Gary E. Miller Rellim 109 NW Wilmington Ave., Suite E, Bend, OR 97703
        address@hidden  Tel:+1 541 382 8588

Attachment: pgp3M3gRtPlAL.pgp
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]