Skip to content

Commit

Permalink
executor/common_lunux.h/usbip_server_init: Close fd if can't find usb…
Browse files Browse the repository at this point in the history
… port

If usb port for usbip server can't be found, fd of the server and client should be closed.

If they don't closed, the number of open files will increase and may overflow the number of available open files for the process.

Signed-off-by: Pavel Nikulshin <[email protected]>
  • Loading branch information
AKSUMRUS authored Jun 26, 2024
1 parent 6271cc7 commit 87392e5
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions executor/common_linux.h
Original file line number Diff line number Diff line change
Expand Up @@ -2051,6 +2051,9 @@ static long syz_usbip_server_init(volatile long a0)
int available_port_num = __atomic_fetch_add(&port_alloc[usb3], 1, __ATOMIC_RELAXED);
if (available_port_num > VHCI_HC_PORTS) {
debug("syz_usbip_server_init : no more available port for : %d\n", available_port_num);

close(client_fd);
close(server_fd);
return -1;
}

Expand All @@ -2067,6 +2070,8 @@ static long syz_usbip_server_init(volatile long a0)
sprintf(buffer, "%d %d %s %d", port_num, client_fd, "0", speed);

write_file("/sys/devices/platform/vhci_hcd.0/attach", buffer);

close(client_fd);
return server_fd;
}

Expand Down

0 comments on commit 87392e5

Please sign in to comment.