世界 4db2957a49 usbip: drain controller callbacks and centralize ret_submit validation
P1: The IOUSBHostControllerInterface command/doorbell blocks ran on an
Apple-owned dispatch queue, so callbacks could still fire (and panic in
cgo.Handle.Value) after Close deleted the handle. The controller now owns
a serial dispatch queue and drains it via dispatch_sync before tearing
the wrapper down — the watcher's pattern, extracted into a shared
box_usbhost_drain_and_release_queue helper.

P2: scatterResponse only bounds-checked ActualLength on IN transfers, so
an OUT RET_SUBMIT with a negative or oversized actual_length flowed
straight to box_usbhost_endpoint_sm_complete as a wrapped C.size_t.
Validation moves into pendingTransfer.accept, which reconciles every
response against the request before the length leaves the package.

Also wraps cgo.Handle in cgoCallbackHandle so destroy-then-Delete
ordering is encoded structurally for both the watcher and the controller.
2026-06-09 10:42:32 +08:00
2026-06-09 10:42:24 +08:00
2026-06-03 16:33:44 +08:00
2026-06-08 08:51:45 +08:00
2026-05-13 23:39:27 +08:00
2026-06-08 08:51:38 +08:00
2026-03-01 12:30:43 +08:00
2026-06-03 12:56:36 +08:00
2026-02-27 14:58:06 +08:00
2026-02-15 21:10:44 +08:00
2024-02-24 13:20:27 +08:00
2026-06-08 08:51:41 +08:00
2025-04-29 20:45:19 +08:00
2023-12-29 18:00:40 +08:00
2023-12-29 18:00:40 +08:00
2026-02-26 14:13:32 +08:00
2026-06-08 08:51:51 +08:00
2026-06-08 08:51:51 +08:00
2023-03-27 08:20:51 +08:00
2026-06-03 12:56:36 +08:00
2026-04-20 09:49:39 +08:00

sing-box

The universal proxy platform.

Packaging status

Documentation

https://sing-box.sagernet.org

License

Copyright (C) 2022 by nekohasekai <contact-sagernet@sekai.icu>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

In addition, no derivative work may use the name or imply association
with this application without prior consent.
S
Description
No description provided
Readme 52 MiB
Languages
Go 97.2%
Shell 1.6%
Objective-C 0.8%
Makefile 0.2%
C 0.2%