I am attaching a minimal patch that fixes the segfault. I will make a new version this week, I have one more issue to deal with still.
Jiri On Mon, Mar 22, 2010 at 3:27 PM, Mark Brown <broo...@sirena.org.uk> wrote: > Hi George, > > The enclosed bug report was submitted against the Debian package (I'm > also including the offending .gob file). I've not yet had a chance to > investigate it. > > Thanks, > Mark > > > ---------- Forwarded message ---------- > From: Joachim Breitner <nome...@debian.org> > To: Debian Bug Tracking System <sub...@bugs.debian.org> > Date: Thu, 18 Mar 2010 23:05:53 +0100 > Subject: Bug#574542: gob2 segfaults > Package: gob2 > Version: 2.0.16-1 > Severity: important > > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Hi, > > I just stumbled over a segfault in gob2. I hope you can reproduce it: > > Download the source code of link-monitor-applet (e.g. apt-get source > link-monitor-applet) and enter the directory. > $ rm -rf build/ > $ /usr/bin/gob2 --always-private-header --no-touch --exit-on-warn > --output-dir=build/src src/lm-line-graph.gob > Speicherzugriffsfehler > > This is obviously a bug in gob2. > > Thanks, > Joachim > > > - -- System Information: > Debian Release: squeeze/sid > APT prefers unstable > APT policy: (500, 'unstable'), (1, 'experimental') > Architecture: amd64 (x86_64) > > Kernel: Linux 2.6.32-3-amd64 (SMP w/2 CPU cores) > Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8) > Shell: /bin/sh linked to /bin/dash > > Versions of packages gob2 depends on: > ii libc6 2.10.2-6 Embedded GNU C Library: Shared > lib > ii libglib2.0-0 2.22.4-1 The GLib library of C routines > > gob2 recommends no packages. > > gob2 suggests no packages. > > - -- no debconf information > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.10 (GNU/Linux) > > iEYEARECAAYFAkuio8EACgkQ9ijrk0dDIGw/UwCgyEXB7NYZnNw2BrPJUUGKw+a5 > vasAoLxLoA3fmwU4e8V2F2WuY3dic4lZ > =Rfbb > -----END PGP SIGNATURE----- > > > > > -- Jiri (George) Lebl, http://www.math.uiuc.edu/~jlebl/ or http://www.jirka.org/
diff --git a/src/parse.y b/src/parse.y index b8792bb..9c880cf 100644 --- a/src/parse.y +++ b/src/parse.y @@ -156,7 +157,11 @@ push_function (int scope, int method, char *oid, char *id, g_assert(scope != CLASS_SCOPE); - if(method == INIT_METHOD || method == CLASS_INIT_METHOD) { + if(method == INIT_METHOD || + method == CLASS_INIT_METHOD || + method == CONSTRUCTOR_METHOD || + method == DISPOSE_METHOD || + method == FINALIZE_METHOD) { type = (Type *)node_new (TYPE_NODE, "name", "void", NULL);