parted/0029-lib-fs-resize-Prevent-crash-resizing-FAT-with-very-d.patch

34 lines
1.1 KiB
Diff

From 9a95ca5da96846f3edea48ab18c6365001805e70 Mon Sep 17 00:00:00 2001
From: Mike Fleetwood <mike.fleetwood@googlemail.com>
Date: Sun, 28 Feb 2016 15:36:10 +0000
Subject: [PATCH 29/30] lib-fs-resize: Prevent crash resizing FAT with very
deep directories
Resizing a FAT file system crashes in libparted/fs/r/fat/count.c
flag_traverse_dir() if the length of any path name in the file system
overflows the 512 byte file_name local buffer. Increase buffer to 4096,
PATH_MAX on Linux.
Reported in
https://bugzilla.gnome.org/show_bug.cgi?id=762448
---
libparted/fs/r/fat/count.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libparted/fs/r/fat/count.c b/libparted/fs/r/fat/count.c
index 7949e47..a5837c0 100644
--- a/libparted/fs/r/fat/count.c
+++ b/libparted/fs/r/fat/count.c
@@ -219,7 +219,7 @@ flag_traverse_dir (FatTraverseInfo* trav_info) {
PedFileSystem* fs = trav_info->fs;
FatDirEntry* this_entry;
FatTraverseInfo* subdir_trav_info;
- char file_name [512];
+ char file_name [4096];
char* file_name_start;
FatCluster first_cluster;
PedSector size;
--
2.5.0