True story: "gconfig" removed root folder...

From: Romain Lievin
Date: Sun Jan 18 2004 - 09:25:30 EST


Hi,

a patch for gconfig against kernel2.6.1.

Thanks to Tomas and Ozan.

Romain.

================ [ cut here ] ===========
diff -Naur linux-2.6.1/scripts/kconfig/gconf.c linux/scripts/kconfig/gconf.c
--- linux-2.6.1/scripts/kconfig/gconf.c 2004-01-15 21:45:22.000000000 +0100
+++ linux/scripts/kconfig/gconf.c 2004-01-18 15:15:23.000000000 +0100
@@ -23,6 +23,9 @@
#include <unistd.h>
#include <time.h>
#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+

//#define DEBUG

@@ -643,14 +646,29 @@
store_filename(GtkFileSelection * file_selector, gpointer user_data)
{
const gchar *fn;
+ gchar trailing;
+ gchar *safe_fn;
+ struct stat sb;

- fn = gtk_file_selection_get_filename(GTK_FILE_SELECTION
+ fn = gtk_file_selection_get_filename (GTK_FILE_SELECTION
(user_data));

- if (conf_write(fn))
- text_insert_msg("Error", "Unable to save configuration !");
+ /* protect against 'root directory' bug */
+ trailing = fn[strlen (fn)-1];
+ stat (fn, &sb);
+ safe_fn = g_strdup (fn);
+
+ if (S_ISDIR(sb.st_mode))
+ if (trailing != '/')
+ {
+ g_free (safe_fn);
+ safe_fn = g_strconcat (fn, "/", NULL);
+ }

- gtk_widget_destroy(GTK_WIDGET(user_data));
+ if (conf_write (safe_fn))
+ text_insert_msg("Error", "Unable to save configuration !");
+ g_free (safe_fn);
+ gtk_widget_destroy (GTK_WIDGET(user_data));
}

void on_save_as1_activate(GtkMenuItem * menuitem, gpointer user_data)

--
Romain Liïvin (roms): <roms@xxxxxxxxx>
Web site: http://tilp.info
"Linux, y'a moins bien mais c'est plus cher !"






-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/