NetworkManager r3541 - in trunk: . dispatcher-daemon
- From: dcbw svn gnome org
 
- To: svn-commits-list gnome org
 
- Subject: NetworkManager r3541 - in trunk: . dispatcher-daemon
 
- Date: Tue,  8 Apr 2008 04:49:40 +0100 (BST)
 
Author: dcbw
Date: Tue Apr  8 04:49:40 2008
New Revision: 3541
URL: http://svn.gnome.org/viewvc/NetworkManager?rev=3541&view=rev
Log:
2008-04-07  Dan Williams  <dcbw redhat com>
	Patch from Bill Nottingham
	* dispatcher-daemon/NetworkManagerDispatcher.c
		- ignore backup/packaging crufy (rh #440143)
Modified:
   trunk/ChangeLog
   trunk/dispatcher-daemon/NetworkManagerDispatcher.c
Modified: trunk/dispatcher-daemon/NetworkManagerDispatcher.c
==============================================================================
--- trunk/dispatcher-daemon/NetworkManagerDispatcher.c	(original)
+++ trunk/dispatcher-daemon/NetworkManagerDispatcher.c	Tue Apr  8 04:49:40 2008
@@ -75,6 +75,35 @@
 
 
 /*
+ * nmd_is_valid_filename
+ *
+ * Verify that the given script is a valid file name. Specifically,
+ * ensure that the file:
+ *	- is not a editor backup file
+ *	- is not a package management file
+ *	- does not start with '.'
+ */
+static inline gboolean
+nmd_is_valid_filename (const char *file_name)
+{
+	char *bad_suffixes[] = { "~", ".rpmsave", ".rpmorig", ".rpmnew", NULL };
+	char *tmp;
+	int i;
+
+	if (file_name[0] == '.')
+		return FALSE;
+	for (i = 0; bad_suffixes[i]; i++) {
+		if (g_str_has_suffix(file_name, bad_suffixes[i]))
+			return FALSE;
+	}
+	tmp = g_strrstr(file_name, ".dpkg-");
+	if (tmp && (tmp == strrchr(file_name,'.')))
+		return FALSE;
+	return TRUE;
+}
+
+
+/*
  * nmd_execute_scripts
  *
  * Call scripts in /etc/NetworkManager.d when devices go down or up
@@ -107,7 +136,7 @@
 		char *file_path = g_build_filename (NM_SCRIPT_DIR, file_name, NULL);
 		struct stat	s;
 
-		if ((file_name[0] != '.') && (stat (file_path, &s) == 0))
+		if (nmd_is_valid_filename(file_name) && (stat (file_path, &s) == 0))
 		{
 			if (nmd_permission_check (&s))
 			{
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]