Whamcloud - gitweb
LU-4629 libcfs: fix buffer overflow of string buffer
[fs/lustre-release.git] / libcfs / libcfs / posix / posix-debug.c
index 3de41f6..32ccdcc 100644 (file)
@@ -100,16 +100,21 @@ int libcfs_debug_init(unsigned long bufsize)
                                 (unsigned int) strtol(debug_subsys, NULL, 0);
 
         debug_filename = getenv("LIBLUSTRE_DEBUG_BASE");
-        if (debug_filename)
-                strncpy(libcfs_debug_file_path, debug_filename,
-                        sizeof(libcfs_debug_file_path));
+       if (debug_filename) {
+               strncpy(libcfs_debug_file_path, debug_filename,
+                       sizeof(libcfs_debug_file_path));
+               libcfs_debug_file_path[sizeof(libcfs_debug_file_path)-1] = '\0';
+       }
 
         debug_filename = getenv("LIBLUSTRE_DEBUG_FILE");
-        if (debug_filename)
-                strncpy(debug_file_name,debug_filename,sizeof(debug_file_name));
+       if (debug_filename) {
+               strncpy(debug_file_name, debug_filename,
+                       sizeof(debug_file_name));
+               debug_file_name[sizeof(debug_file_name) - 1] = '\0';
+       }
 
         if (debug_file_name[0] == '\0' && libcfs_debug_file_path[0] != '\0')
-                snprintf(debug_file_name, sizeof(debug_file_name) - 1,
+               snprintf(debug_file_name, sizeof(debug_file_name),
                          "%s-%s-"CFS_TIME_T".log", libcfs_debug_file_path,
                          source_nid, time(0));