1*eb088894SJit Loon Lim /* 2*eb088894SJit Loon Lim * Copyright (c) 2024-2025, Altera Corporation. All rights reserved. 3*eb088894SJit Loon Lim * 4*eb088894SJit Loon Lim * SPDX-License-Identifier: BSD-3-Clause 5*eb088894SJit Loon Lim */ 6*eb088894SJit Loon Lim 7*eb088894SJit Loon Lim #include <string.h> 8*eb088894SJit Loon Lim strnlen_secure(const char * str,size_t maxlen)9*eb088894SJit Loon Limsize_t strnlen_secure(const char *str, size_t maxlen) 10*eb088894SJit Loon Lim { 11*eb088894SJit Loon Lim size_t len = 0; 12*eb088894SJit Loon Lim 13*eb088894SJit Loon Lim if (str == NULL) { 14*eb088894SJit Loon Lim return 0; 15*eb088894SJit Loon Lim } 16*eb088894SJit Loon Lim 17*eb088894SJit Loon Lim while ((len < maxlen) && (str[len] != '\0')) { 18*eb088894SJit Loon Lim len++; 19*eb088894SJit Loon Lim } 20*eb088894SJit Loon Lim 21*eb088894SJit Loon Lim return len; 22*eb088894SJit Loon Lim } 23