summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-admin/gamin/files/gamin-0.1.6-doublefree.patch')
-rw-r--r--app-admin/gamin/files/gamin-0.1.6-doublefree.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/app-admin/gamin/files/gamin-0.1.6-doublefree.patch b/app-admin/gamin/files/gamin-0.1.6-doublefree.patch
new file mode 100644
index 000000000000..edef11c9a17f
--- /dev/null
+++ b/app-admin/gamin/files/gamin-0.1.6-doublefree.patch
@@ -0,0 +1,29 @@
+diff --exclude-from=/home/dang/.diffrc -u -ruN gamin-0.1.6.orig/server/gam_connection.c gamin-0.1.6/server/gam_connection.c
+--- gamin-0.1.6.orig/server/gam_connection.c 2005-09-08 06:18:13.000000000 -0400
++++ gamin-0.1.6/server/gam_connection.c 2005-10-25 12:46:18.000000000 -0400
+@@ -387,8 +387,13 @@
+ gam_listener_remove_subscription(conn->listener, sub);
+ gam_remove_subscription(sub);
+ #ifdef ENABLE_INOTIFY
+- if (gam_inotify_is_running())
+- gam_subscription_free(sub);
++ if ((gam_inotify_is_running()) && (!gam_exclude_check(path))) {
++ gam_fs_mon_type type;
++
++ type = gam_fs_get_mon_type (path);
++ if (type != GFS_MT_POLL)
++ gam_subscription_free(sub);
++ }
+ #endif
+
+ if (gam_send_ack(conn, req->seq, path, pathlen) < 0) {
+@@ -396,7 +401,8 @@
+ gam_connection_get_pid(conn));
+ }
+ g_free(path);
+- } break;
++ break;
++ }
+ case GAM_REQ_DEBUG:
+ #ifdef GAMIN_DEBUG_API
+ gam_debug_add(conn, req->path, options);