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

Re: [libvirt] [PATCH 3/3] Fix race in finding available vnc port



On 05/21/2010 10:00 AM, Jim Fehlig wrote:
> +        if (virBitmapGetBit(driver->reservedVNCPorts,
> +                            i - QEMU_VNC_PORT_MIN, &used) < 0)
> +            VIR_DEBUG("virBitmapGetBit failed on bit %d", i - QEMU_VNC_PORT_MIN);
> +
> +        if (used)
> +            continue;
> +
>          addr.sin_family = AF_INET;
>          addr.sin_port = htons(i);
>          addr.sin_addr.s_addr = htonl(INADDR_ANY);
> @@ -2654,6 +2669,8 @@ static int qemudNextFreeVNCPort(struct qemud_driver *driver ATTRIBUTE_UNUSED) {
>          if (bind(fd, (struct sockaddr*)&addr, sizeof(addr)) == 0) {
>              /* Not in use, lets grab it */
>              close(fd);
> +            /* Add port to bitmap of reserved ports */
> +            virBitmapSetBit(driver->reservedVNCPorts, i - QEMU_VNC_PORT_MIN);

We might as well be consistent, and check for failure here, too (adding
ATTRIBUTE_RETURN_CHECK in bitmap.h would have caught this automatically).

ACK with that squashed in.

-- 
Eric Blake   eblake redhat com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


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