diff --git a/src/sbbs3/sftp.cpp b/src/sbbs3/sftp.cpp index a3a3934ff0fafd0c194605ba4828f3a6b2f1664a..04529b1b978144521c1435c30fb0c0744dc0cdb5 100644 --- a/src/sbbs3/sftp.cpp +++ b/src/sbbs3/sftp.cpp @@ -731,13 +731,10 @@ sftp_resolve_path(char *target, const char *path, size_t size) else if(*(out+1)=='.' && *(out+2)=='.' && (*(out+3)=='/' || *(out+3)==0)) { *out=0; p=strrchr(target,'/'); - if(p==NULL) { - if (target_alloced) - free(target); - return nullptr; + if (p!=NULL) { + memmove(p,out+3,strlen(out+3)+1); + out=p; } - memmove(p,out+3,strlen(out+3)+1); - out=p; } else { out++;