From edb2d4fdb3cb2547d2cfcfdc9d3b3d9dd4dc7fc2 Mon Sep 17 00:00:00 2001 From: Chad Etzel Date: Thu, 28 Apr 2022 16:21:04 -0700 Subject: [PATCH] Fix crash for negative uvcUnit integers (Issue #42) Adds two guard statements in relevant methods in UVCControl.swift so that casting a negative `uvcUnit` Int to UInt16 no longer crashes the app. --- CameraController/UVC/Models/Controls/UVCControl.swift | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CameraController/UVC/Models/Controls/UVCControl.swift b/CameraController/UVC/Models/Controls/UVCControl.swift index 8150476..b21e80e 100644 --- a/CameraController/UVC/Models/Controls/UVCControl.swift +++ b/CameraController/UVC/Models/Controls/UVCControl.swift @@ -31,6 +31,9 @@ class UVCControl { } func getDataFor(type: UVCRequestCodes, length: Int) -> Int { + + guard uvcUnit >= 0 else { return 0 } + var value: Int = 0 let requestType = USBmakebmRequestType(direction: kUSBIn, type: kUSBClass, recipient: kUSBInterface) @@ -60,6 +63,9 @@ class UVCControl { } func setData(value: Int, length: Int) -> Bool { + + guard uvcUnit >= 0 else { return false } + var ref = value let requestType = USBmakebmRequestType(direction: kUSBOut, type: kUSBClass, recipient: kUSBInterface)