diff --git a/Marlin/cardreader.cpp b/Marlin/cardreader.cpp
index 8693424d308510d2688a5ae2052e34b243e79324..b8a940f4ba48db6a75720d0c6fd1cb7e91c86f79 100644
--- a/Marlin/cardreader.cpp
+++ b/Marlin/cardreader.cpp
@@ -56,8 +56,8 @@ void CardReader::lsDive(const char *prepend, SdFile parent, const char * const m
     // If the entry is a directory and the action is LS_SerialPrint
     if (DIR_IS_SUBDIR(&p) && lsAction != LS_Count && lsAction != LS_GetFilename) {
 
-      // Allocate enough stack space for the full path to a folder
-      int len = strlen(prepend) + FILENAME_LENGTH + 1;
+      // Allocate enough stack space for the full path to a folder, trailing slash, and nul
+      int len = strlen(prepend) + FILENAME_LENGTH + 1 + 1;
       char path[len];
 
       // Get the short name for the item, which we know is a folder