Package: oregano
Version: 0.40.0-3
Severity: serious
Tags: patch
Oregano defines GNOME_DISABLE_DEPRECATED which has the effect that
gnome_menu_item_new() does NOT get declared. As a result, the
function gets implicitly defined to return an "int", which is a
problem on 64-bit architectures since the pointer cannot fit in an
int. In particular, this is guaranteed to cause a SIGSEGV on ia64
since the top 32 bits would get truncated to zero.
Second, node_store_get_type() attempted to use guint to store a GTK
type when GType is needed. This caused an immediate segfault on ia64
at startup.
Third, part-property.c passed a pointer to an unitialized size_t-typed
variable to get_macro_name(), which was expecting only an int pointer.
Thus, the top 32-bits remained unitialized and on ia64 this caused a
crash when attempting to insert any part.
Patch below fixes all three problems. Please apply (and forward to
upstream if appropriate).
Thanks!
--david
diff -urN oregano-0.40.0/src/Makefile.am oregano-0.40.0-davidm/src/Makefile.am
--- oregano-0.40.0/src/Makefile.am 2005-05-26 18:23:27.000000000 -0700
+++ oregano-0.40.0-davidm/src/Makefile.am 2005-05-26 18:05:19.000000000
-0700
@@ -15,8 +15,8 @@
-DDATADIR=\""$(datadir)"\" \
$(OREGANO_CFLAGS) \
-DGDK_DISABLE_DEPRECATED=1 \
- -DGLIB_DISABLE_DEPRECATED=1 \
- -DGNOME_DISABLE_DEPRECATED=1
+ -DGLIB_DISABLE_DEPRECATED=1
+# -DGNOME_DISABLE_DEPRECATED=1
# -DGTK_DISABLE_DEPRECATED=1
bin_SCRIPTS = oregano_parser
diff -urN oregano-0.40.0/src/Makefile.in oregano-0.40.0-davidm/src/Makefile.in
--- oregano-0.40.0/src/Makefile.in 2005-05-26 18:23:27.000000000 -0700
+++ oregano-0.40.0-davidm/src/Makefile.in 2005-05-26 18:06:47.000000000
-0700
@@ -137,7 +137,7 @@
oreganodir = $(datadir)/oregano
-INCLUDES = -DGNOMELOCALEDIR=\""$(datadir)/locale"\"
-I$(includedir) $(GNOME_INCLUDEDIR)
-DOREGANO_GLADEDIR=\""$(oreganodir)/glade"\"
-DOREGANO_LIBRARYDIR=\""$(oreganodir)/libraries"\"
-DOREGANO_MODELDIR=\""$(oreganodir)/models"\" -DDATADIR=\""$(datadir)"\"
$(OREGANO_CFLAGS) -DGDK_DISABLE_DEPRECATED=1
-DGLIB_DISABLE_DEPRECATED=1 -DGNOME_DISABLE_DEPRECATED=1
+INCLUDES = -DGNOMELOCALEDIR=\""$(datadir)/locale"\"
-I$(includedir) $(GNOME_INCLUDEDIR)
-DOREGANO_GLADEDIR=\""$(oreganodir)/glade"\"
-DOREGANO_LIBRARYDIR=\""$(oreganodir)/libraries"\"
-DOREGANO_MODELDIR=\""$(oreganodir)/models"\" -DDATADIR=\""$(datadir)"\"
$(OREGANO_CFLAGS) -DGDK_DISABLE_DEPRECATED=1
-DGLIB_DISABLE_DEPRECATED=1
# -DGTK_DISABLE_DEPRECATED=1
diff -urN oregano-0.40.0/src/node-store.c oregano-0.40.0-davidm/src/node-store.c
--- oregano-0.40.0/src/node-store.c 2004-10-11 12:04:27.000000000 -0700
+++ oregano-0.40.0-davidm/src/node-store.c 2005-05-26 18:12:45.000000000
-0700
@@ -88,7 +88,7 @@
GType
node_store_get_type (void)
{
- static guint node_store_type = 0;
+ static GType node_store_type = 0;
if (!node_store_type) {
static const GTypeInfo node_store_info = {
diff -urN oregano-0.40.0/src/part-property.c
oregano-0.40.0-davidm/src/part-property.c
--- oregano-0.40.0/src/part-property.c 2004-10-10 11:20:28.000000000 -0700
+++ oregano-0.40.0-davidm/src/part-property.c 2005-05-26 18:17:38.000000000
-0700
@@ -42,7 +42,7 @@
* @return the name of a macro variable
*/
static char *get_macro_name (const char *str, char **cls1,
- char **cls2, int *sz)
+ char **cls2, size_t *sz)
{
char tmp[512], separators[] = { ",.;/|()" };
char *id;
@@ -105,7 +105,7 @@
}
}
- *sz = (int) (q - str);
+ *sz = (q - str);
return id;
error:
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]