From ea22e2962a0915b7ef8a941ca9f585797a671325 Mon Sep 17 00:00:00 2001 From: aidan garske Date: Fri, 10 Jul 2026 12:05:39 -0700 Subject: [PATCH] F-5852 - Only treat /.. as parent traversal in CleanPath --- src/internal.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/internal.c b/src/internal.c index 098d4c6a..0c2a5eb7 100644 --- a/src/internal.c +++ b/src/internal.c @@ -19885,8 +19885,9 @@ int wolfSSH_CleanPath(WOLFSSH* ssh, char* in, int inSz) if (path[i] == WS_DELIM) { int z; - /* if next two chars are .. then delete */ - if (path[i+1] == '.' && path[i+2] == '.') { + /* delete only a real ".." segment, not "..name" */ + if (path[i+1] == '.' && path[i+2] == '.' && + (path[i+3] == WS_DELIM || path[i+3] == '\0')) { enIdx = i + 3; /* start at one char before / and retrace path */