From 95a9fcfd5e7bbe14962156a4fa4eb8d686fc4c13 Mon Sep 17 00:00:00 2001 From: Timerix22 Date: Thu, 4 Jan 2024 00:58:10 +0600 Subject: [PATCH] bufgixes --- src/Network/network_types.c | 7 +++++-- src/Network/network_types.h | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Network/network_types.c b/src/Network/network_types.c index 82f2c12..fe173b9 100644 --- a/src/Network/network_types.c +++ b/src/Network/network_types.c @@ -71,13 +71,16 @@ Maybe knIPV4Endpoint_fromStr(char* endStr, knIPV4Endpoint* endVal){ i32 sep_i = cptr_seekChar(endStr, ':', 0, 48); if(sep_i < 7) safethrow(cptr_concat("can't find ':' in '", endStr, "'"), ;); - char* portBegin = endStr+sep_i+1; + const char* portBegin = endStr+sep_i+1; u64 port = knPort_INVALID; if(sscanf(portBegin, IFWIN("%llu", "%lu"), &port)!=1) safethrow(cptr_concat("can't recognise port number in '", portBegin, "'"), ;) knIPV4Address addr = knIPV4Address_INVALID; - try(knIPV4Address_fromStr(endStr, &addr), _m865, ;); + char* addrStr = cptr_copy(endStr); + addrStr[sep_i] = 0; + try(knIPV4Address_fromStr(addrStr, &addr), _m865, ;); + free(addrStr); *endVal = knIPV4Endpoint_create(addr, port); return MaybeNull; diff --git a/src/Network/network_types.h b/src/Network/network_types.h index f167ddd..24d228a 100644 --- a/src/Network/network_types.h +++ b/src/Network/network_types.h @@ -23,7 +23,7 @@ kt_declare(knIPV4Address); #define knIPV4Address_ANY knIPV4Address_fromBytes(0,0,0,0) #define knIPV4Address_LOOPBACK knIPV4Address_fromBytes(127,0,0,1) #define knIPV4Address_INVALID knIPV4Address_fromBytes(255,255,255,255) -#define knIPV4Address_isINVALID(ADDR) (ADDR.UintBigEndian == ~0) +#define knIPV4Address_isINVALID(ADDR) (ADDR.UintBigEndian == (u32)~0) ///@return Maybe Maybe knIPV4Address_fromStr(char* addrStr, knIPV4Address* addrPtr);