diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-08-23 18:26:02 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-08-23 18:26:02 +0200 |
| commit | d864e0c6281024ce4b9bd654aa83308a50f583d8 (patch) | |
| tree | 7cfc4bbd85ec640bde2bfaf1e5802a818f1f9bc6 | |
| parent | d0bb792ee89725878bd541aa17f59f27b2e80583 (diff) | |
feat: Network: Fix IPv4 `IpCheckVersion4` parser.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
| -rw-r--r-- | dev/kernel/src/Network/IPAddress.cc (renamed from dev/kernel/src/Network/IPAddr.cc) | 5 | ||||
| -rw-r--r-- | dev/kernel/src/Network/IPCAddress.cc (renamed from dev/kernel/src/Network/IPCAddr.cc) | 0 | ||||
| -rw-r--r-- | dev/kernel/src/Network/IPCMessage.cc (renamed from dev/kernel/src/Network/IPCMsg.cc) | 6 |
3 files changed, 8 insertions, 3 deletions
diff --git a/dev/kernel/src/Network/IPAddr.cc b/dev/kernel/src/Network/IPAddress.cc index ec7d8a35..b02eae08 100644 --- a/dev/kernel/src/Network/IPAddr.cc +++ b/dev/kernel/src/Network/IPAddress.cc @@ -91,11 +91,14 @@ bool IPFactory::IpCheckVersion4(const Char* ip) { Int32 cnter = 0; Int32 dot_cnter = 0; + constexpr const auto kIP4DotCharacter = '.'; + for (SizeT base = 0; base < rt_string_len(ip); ++base) { - if (ip[base] == '.') { + if (ip[base] == kIP4DotCharacter) { cnter = 0; ++dot_cnter; } else { + if (ip[base] > '5' || ip[base] < '0') return NO; if (!rt_is_alnum(ip[base])) return NO; if (cnter == 3) return NO; diff --git a/dev/kernel/src/Network/IPCAddr.cc b/dev/kernel/src/Network/IPCAddress.cc index 4c1dd500..4c1dd500 100644 --- a/dev/kernel/src/Network/IPCAddr.cc +++ b/dev/kernel/src/Network/IPCAddress.cc diff --git a/dev/kernel/src/Network/IPCMsg.cc b/dev/kernel/src/Network/IPCMessage.cc index 9abefcef..6f8223f7 100644 --- a/dev/kernel/src/Network/IPCMsg.cc +++ b/dev/kernel/src/Network/IPCMessage.cc @@ -105,10 +105,12 @@ Bool IPC_MSG::Pass(IPC_MSG* src, IPC_MSG* target) noexcept { if (src->IpcMsgSz > target->IpcMsgSz) return No; if (target->IpcMsgSz > src->IpcMsgSz) return No; - UInt32 timeout = 0U; + auto timeout = 0U; + + const auto kLimitTimeout = 1000000U; while ((target->IpcLock % kIPCLockUsed) != 0) { - if (timeout > 100000U) { + if (timeout > kLimitTimeout) { return No; } } |
