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]

Reply via email to