Skip to content

Commit bb43a69

Browse files
fix: Address possible NULL binding compiler warning
1 parent e7e3816 commit bb43a69

1 file changed

Lines changed: 16 additions & 18 deletions

File tree

WebDriverAgentLib/Vendor/CocoaAsyncSocket/GCDAsyncUdpSocket.m

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3003,7 +3003,7 @@ - (BOOL)bindToAddress:(NSData *)localAddr error:(NSError **)errPtr
30033003

30043004
// Create the socket(s) if needed
30053005

3006-
if ((self->flags & kDidCreateSockets) == 0)
3006+
if ((self->flags & kDidCreateSockets) == 0)
30073007
{
30083008
if (![self createSocket4:useIPv4 socket6:useIPv6 error:&err])
30093009
{
@@ -3013,30 +3013,28 @@ - (BOOL)bindToAddress:(NSData *)localAddr error:(NSError **)errPtr
30133013

30143014
// Bind the socket(s)
30153015

3016-
if (useIPv4)
3016+
if (useIPv4 || useIPv6)
30173017
{
3018+
NSData *addressData = useIPv4 ? localAddr4 : localAddr6;
3019+
int socketFD = useIPv4 ? self->socket4FD : self->socket6FD;
3020+
NSString *protocol = useIPv4 ? @"IPv4" : @"IPv6";
3021+
30183022
LogVerbose(@"Binding socket to address(%@:%hu)",
3019-
[[self class] hostFromAddress:localAddr4],
3020-
[[self class] portFromAddress:localAddr4]);
3023+
[[self class] hostFromAddress:addressData],
3024+
[[self class] portFromAddress:addressData]);
30213025

3022-
int status = bind(self->socket4FD, (const struct sockaddr *)[localAddr4 bytes], (socklen_t)[localAddr4 length]);
3023-
if (status == -1)
3026+
const struct sockaddr *addr = (const struct sockaddr *)[addressData bytes];
3027+
if (addr == NULL)
30243028
{
30253029
[self closeSockets];
30263030

3027-
NSString *reason = @"Error in bind() function";
3028-
err = [self errnoErrorWithReason:reason];
3031+
NSString *reason = [NSString stringWithFormat:@"Invalid address data for %@ bind", protocol];
3032+
err = [self badParamError:reason];
30293033

30303034
return_from_block;
30313035
}
3032-
}
3033-
else
3034-
{
3035-
LogVerbose(@"Binding socket to address(%@:%hu)",
3036-
[[self class] hostFromAddress:localAddr6],
3037-
[[self class] portFromAddress:localAddr6]);
30383036

3039-
int status = bind(self->socket6FD, (const struct sockaddr *)[localAddr6 bytes], (socklen_t)[localAddr6 length]);
3037+
int status = bind(socketFD, addr, (socklen_t)[addressData length]);
30403038
if (status == -1)
30413039
{
30423040
[self closeSockets];
@@ -3050,10 +3048,10 @@ - (BOOL)bindToAddress:(NSData *)localAddr error:(NSError **)errPtr
30503048

30513049
// Update flags
30523050

3053-
self->flags |= kDidBind;
3051+
self->flags |= kDidBind;
30543052

3055-
if (!useIPv4) self->flags |= kIPv4Deactivated;
3056-
if (!useIPv6) self->flags |= kIPv6Deactivated;
3053+
if (!useIPv4) self->flags |= kIPv4Deactivated;
3054+
if (!useIPv6) self->flags |= kIPv6Deactivated;
30573055

30583056
result = YES;
30593057

0 commit comments

Comments
 (0)