]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
tool_doswin: remove the max length check
authorDaniel Stenberg <daniel@haxx.se>
Thu, 1 Jan 2026 17:23:39 +0000 (18:23 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Sun, 4 Jan 2026 10:22:43 +0000 (11:22 +0100)
A too long name is likely to cause a problem later anyway and get
reported there. We don't enforce file name lengths for any other
systems.

Assisted-by: Jay Satiro
Assisted-by: Viktor Szakats
Closes #20143

src/tool_doswin.c
tests/tunit/tool1604.c

index a2d6bb81d732c6090e7fc7888cc8a415a0963d5b..a8098c8a12f423b05f245e1c11231d057e7d8517 100644 (file)
@@ -103,7 +103,6 @@ SANITIZEcode sanitize_file_name(char ** const sanitized, const char *file_name,
   char *p, *target;
   size_t len;
   SANITIZEcode sc;
-  size_t max_sanitized_len;
 
   if(!sanitized)
     return SANITIZE_ERR_BAD_ARGUMENT;
@@ -113,22 +112,7 @@ SANITIZEcode sanitize_file_name(char ** const sanitized, const char *file_name,
   if(!file_name)
     return SANITIZE_ERR_BAD_ARGUMENT;
 
-  if(flags & SANITIZE_ALLOW_PATH)
-#ifdef MSDOS
-    max_sanitized_len = PATH_MAX - 1;
-#else
-    /* Windows extended-length path max */
-    max_sanitized_len = 32767 - 1;
-#endif
-  else
-    /* The maximum length of a filename. FILENAME_MAX is often the same as
-       PATH_MAX, in other words it is 260 and does not discount the path
-       information therefore we should not use it. */
-    max_sanitized_len = (PATH_MAX - 1 > 255) ? 255 : PATH_MAX - 1;
-
   len = strlen(file_name);
-  if(len > max_sanitized_len)
-    return SANITIZE_ERR_INVALID_PATH;
 
   target = curlx_strdup(file_name);
   if(!target)
@@ -184,12 +168,6 @@ SANITIZEcode sanitize_file_name(char ** const sanitized, const char *file_name,
   if(sc)
     return sc;
   target = p;
-  len = strlen(target);
-
-  if(len > max_sanitized_len) {
-    curlx_free(target);
-    return SANITIZE_ERR_INVALID_PATH;
-  }
 #endif
 
   if(!(flags & SANITIZE_ALLOW_RESERVED)) {
@@ -198,12 +176,6 @@ SANITIZEcode sanitize_file_name(char ** const sanitized, const char *file_name,
     if(sc)
       return sc;
     target = p;
-    len = strlen(target);
-
-    if(len > max_sanitized_len) {
-      curlx_free(target);
-      return SANITIZE_ERR_INVALID_PATH;
-    }
   }
 
 #ifdef DEBUGBUILD
@@ -523,10 +495,6 @@ static SANITIZEcode rename_if_reserved_dos(char ** const sanitized,
     p_len = strlen(p);
 
     /* Prepend a '_' */
-    if(len == bufsize - 1) {
-      curlx_free(buffer);
-      return SANITIZE_ERR_INVALID_PATH;
-    }
     memmove(p + 1, p, p_len + 1);
     p[0] = '_';
     ++p_len;
index ec23984869ff70434035c1d42884c774f0e71d49..3ef332a6aee52a1d5586769a483b282fa029ba34 100644 (file)
@@ -179,15 +179,6 @@ static CURLcode test_tool1604(const char *arg)
     { "COM56", 0,
       "COM56", SANITIZE_ERR_OK
     },
-    { "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
-      "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
-      "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC"
-      "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"
-      "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE"
-      "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
-        0,
-      NULL, SANITIZE_ERR_INVALID_PATH
-    },
     { NULL, 0,
       NULL, SANITIZE_ERR_BAD_ARGUMENT
     },