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]