Merged. Thanks. On Wed, Aug 10, 2016 at 11:42 AM, Hannes Reinecke <h...@suse.de> wrote:
> On 08/10/2016 11:32 AM, tang.jun...@zte.com.cn wrote: > > From: "tang.junhui" <tang.jun...@zte.com.cn> > > > > logic error exists in memory allocation for polls in uxsock_listen(), > even if the allocated memory size meet the needs, it is still to realloc > memory, which is not up to expectations. > > > > Signed-off-by: tang.junhui <tang.jun...@zte.com.cn> > > --- > > multipathd/uxlsnr.c | 8 +++++--- > > 1 file changed, 5 insertions(+), 3 deletions(-) > > > > diff --git a/multipathd/uxlsnr.c b/multipathd/uxlsnr.c > > index f114e59..fa29b2a 100644 > > --- a/multipathd/uxlsnr.c > > +++ b/multipathd/uxlsnr.c > > @@ -145,7 +145,7 @@ void * uxsock_listen(uxsock_trigger_fn > uxsock_trigger, void * trigger_data) > > pthread_cleanup_push(uxsock_cleanup, NULL); > > > > condlog(3, "uxsock: startup listener"); > > - polls = (struct pollfd *)MALLOC(MIN_POLLS + 1); > > + polls = (struct pollfd *)MALLOC((MIN_POLLS + 1) * sizeof(struct > pollfd)); > > if (!polls) { > > condlog(0, "uxsock: failed to allocate poll fds"); > > return NULL; > > @@ -167,9 +167,11 @@ void * uxsock_listen(uxsock_trigger_fn > uxsock_trigger, void * trigger_data) > > } > > if (num_clients != old_clients) { > > struct pollfd *new; > > - if (num_clients < MIN_POLLS) { > > + if (num_clients <= MIN_POLLS && old_clients > > MIN_POLLS) { > > new = REALLOC(polls, (1 + MIN_POLLS) * > > sizeof(struct pollfd)); > > + } else if (num_clients <= MIN_POLLS && old_clients > <= MIN_POLLS) { > > + new = polls; > > } else { > > new = REALLOC(polls, (1+num_clients) * > > sizeof(struct pollfd)); > > @@ -181,7 +183,7 @@ void * uxsock_listen(uxsock_trigger_fn > uxsock_trigger, void * trigger_data) > > pthread_yield(); > > continue; > > } > > - num_clients = old_clients; > > + old_clients = num_clients; > > polls = new; > > } > > polls[0].fd = ux_sock; > > > Thanks for catching this. > > Reviewed-by: Hannes Reinecke <h...@suse.com> > > Cheers, > > Hannes > -- > Dr. Hannes Reinecke Teamlead Storage & Networking > h...@suse.de +49 911 74053 688 > SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg > GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton > HRB 21284 (AG Nürnberg) > > -- > dm-devel mailing list > dm-devel@redhat.com > https://www.redhat.com/mailman/listinfo/dm-devel >
-- dm-devel mailing list dm-devel@redhat.com https://www.redhat.com/mailman/listinfo/dm-devel