Re: [vd_agent] udscs: Clarify the udscs_read_callback() documentation

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

 



On Wed, 2 Nov 2016, Jonathon Jongsma wrote:
[...]
> >  /* Callbacks with this type will be called when a complete message has been
> > - * received. The callback may call udscs_destroy_connection, in which case
> > - * *connp must be made NULL (which udscs_destroy_connection takes care of).
> > + * received. The callback is responsible for free()-ing the data buffer. It
> > + * may call udscs_destroy_connection, in which case *connp must be made NULL
> > + * (which udscs_destroy_connection takes care of).
> >   */
> >  typedef void (*udscs_read_callback)(struct udscs_connection **connp,
> >      struct udscs_message_header *header, uint8_t *data);
> 
> 
> >From reading the code, it looks like the data buffer should *NOT* be
> freed if udscs_destroy_connection() is called,

Right. This API is a mess. It's also inconsistent with virtio-port.h 
where vdagent_virtio_port_read_callback() must not free the data buffer 
and must not call vdagent_virtio_port_destroy() to destroy the port!


By the way, did I miss something or does udscs_destroy_connection() 
really leak conn->data.buf if conn->read_callback is NULL?
(not that one would want read_callback to be NULL)


-- 
Francois Gouget <fgouget@xxxxxxxxxxxxxxx>
_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]