aboutsummaryrefslogtreecommitdiff
path: root/deskutils/notification-daemon
diff options
context:
space:
mode:
authorRoman Bogorodskiy <novel@FreeBSD.org>2006-07-17 12:08:13 +0000
committerRoman Bogorodskiy <novel@FreeBSD.org>2006-07-17 12:08:13 +0000
commitea92a7a301fe3db0c288d52c9a83fc3dc550674f (patch)
tree9b10d2a011530278c869944b85f8867f65cafc51 /deskutils/notification-daemon
parent183e8c6b13805aea3369480c1a9245905da6411c (diff)
Notes
Diffstat (limited to 'deskutils/notification-daemon')
-rw-r--r--deskutils/notification-daemon/Makefile1
-rw-r--r--deskutils/notification-daemon/files/patch-src-daemon.c62
2 files changed, 63 insertions, 0 deletions
diff --git a/deskutils/notification-daemon/Makefile b/deskutils/notification-daemon/Makefile
index 44af6c167dda..af73a6f662f2 100644
--- a/deskutils/notification-daemon/Makefile
+++ b/deskutils/notification-daemon/Makefile
@@ -7,6 +7,7 @@
PORTNAME= notification-daemon
PORTVERSION= 0.3.5
+PORTREVISION= 1
CATEGORIES= deskutils gnome
MASTER_SITES= http://www.galago-project.org/files/releases/source/notification-daemon/
diff --git a/deskutils/notification-daemon/files/patch-src-daemon.c b/deskutils/notification-daemon/files/patch-src-daemon.c
new file mode 100644
index 000000000000..e931c54e6bd8
--- /dev/null
+++ b/deskutils/notification-daemon/files/patch-src-daemon.c
@@ -0,0 +1,62 @@
+diff -Naur notification-daemon-0.3.5.orig/src/daemon.c notification-daemon-0.3.5/src/daemon.c
+--- src/daemon.c 2006-04-26 10:32:50.000000000 +0200
++++ src/daemon.c 2006-06-18 05:07:47.000000000 +0200
+@@ -399,14 +399,54 @@
+ GValueArray *image_struct;
+ GValue *value;
+ GArray *tmp_array;
++ GType type = G_VALUE_TYPE (icon_data);
++
++ static const GType types[] = {
++ G_TYPE_INT,
++ G_TYPE_INT,
++ G_TYPE_INT,
++ G_TYPE_BOOLEAN,
++ G_TYPE_INT,
++ G_TYPE_INT
++ };
++
++
++ if (dbus_g_type_is_struct (type))
++ {
++ int n;
++
++ if (dbus_g_type_get_struct_size (type) < 7)
++ {
++ g_warning("_notify_daemon_process_icon_data expected 7 data members, got only %d", dbus_g_type_get_struct_size (type));
++ return FALSE;
++ }
++
++ for (n = 0; n < G_N_ELEMENTS (types); ++n)
++ {
++ GType check = dbus_g_type_get_struct_member_type (type, n);
++ if (check != types[n])
++ {
++ g_warning("_notify_daemon_process_icon_data expected '%s' at position %d, but got '%s'",
++ g_type_name (types[n]), n, g_type_name (check));
++ return FALSE;
++ }
+
+- if (!G_VALUE_HOLDS(icon_data, G_TYPE_VALUE_ARRAY))
++ /* We must check this separately as it's not a constant and can't be part of the types[] array */
++ if (dbus_g_type_get_struct_member_type (type, 6) != DBUS_TYPE_G_UCHAR_ARRAY)
++ {
++ g_warning("_notify_daemon_process_icon_data expected '%s' at position %d, but got '%s'",
++ g_type_name (DBUS_TYPE_G_UCHAR_ARRAY), 6, g_type_name (dbus_g_type_get_struct_member_type (type,6)));
++ return FALSE;
++ }
++ }
++ }
++ else
+ {
+- g_warning("_notify_daemon_process_icon_data expected a "
+- "GValue of type GValueArray");
+- return FALSE;
++ g_warning("_notify_daemon_process_icon_data got wrong data");
++ return FALSE;
+ }
+
++
+ image_struct = (GValueArray *)g_value_get_boxed(icon_data);
+ value = g_value_array_get_nth(image_struct, 0);
+