Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 193806 - [GNUStep overlay] GNUMail seg faults on preferences dialog
Summary: [GNUStep overlay] GNUMail seg faults on preferences dialog
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Gentoo Gnustep project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-09-25 22:02 UTC by Jose Quinteiro
Modified: 2007-09-26 18:25 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
gnumail-1.2.0_pre3-pgpversion.patch (gnumail-1.2.0_pre3-pgpversion.patch,932 bytes, patch)
2007-09-25 22:04 UTC, Jose Quinteiro
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jose Quinteiro 2007-09-25 22:02:57 UTC
GNUMail crashes with a segmentation fault when you try to access the "Info->Preferences" dialog.  You cannot set up mail accounts without access to this dialog.

Reproducible: Always

Steps to Reproduce:
1.emerge gnumail
2.openapp GNUMail
3. click on "Info->Preferences"

Actual Results:  
Application crashes.

Expected Results:  
The preferences dialog is displayed.

I think this is happening because the "version" method in PGPController is overloaded by return type.  The class "Object" in GCC's libobjc has a "version" method that returns an int.  This is also true of the NSObject class from gnustep-base.  This is not a problem on 32-bit architectures because pointers and ints are the same size.

I examined the stack in gdb, and the NString pointer returned by PGPController's "version" method is indeed getting truncated to 4 bytes.  It's also the case that the method name "version" is magic, because re-naming it to "myVersion" resolves the crash.

I tried changing the "version" methods in Object and NSObject to no avail.  I attach a path that renames the "version" method in PGPController to "myVersion".


emerge --info
Portage 2.1.3.9 (default-linux/amd64/2007.0, gcc-4.1.2, glibc-2.5-r4, 2.6.22-gentoo-r5 x86_64)
=================================================================
System uname: 2.6.22-gentoo-r5 x86_64 Intel(R) Core(TM)2 CPU 6400 @ 2.13GHz
Timestamp of tree: Tue, 25 Sep 2007 17:00:01 +0000
ccache version 2.4 [enabled]
app-shells/bash:     3.2_p17
dev-java/java-config: 1.3.7, 2.0.33-r1
dev-lang/python:     2.4.4-r5
dev-python/pycrypto: 2.0.1-r6
dev-util/ccache:     2.4-r7
sys-apps/baselayout: 1.12.9-r2
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.61-r1
sys-devel/automake:  1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils:  2.17-r1
sys-devel/gcc-config: 1.3.16
sys-devel/libtool:   1.5.24
virtual/os-headers:  2.6.21
ACCEPT_KEYWORDS="amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=nocona -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/revdep-rebuild /etc/terminfo"
CXXFLAGS="-march=nocona -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="ccache distlocks metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/portage/local/layman/gnustep"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X acl alsa amd64 avi berkdb bitmap-fonts cairo cli cpufreq cracklib crypt cups d divx dri dts dvd dvdnav dvdread emacs gdbm gmedia gnustep gnutls gpm gtk iconv imlib ipv6 isdnlog jack java jpeg live lm_sensors matroska midi mmx moznopango mpeg mudflap ncurses nls nptl nptlonly nsplugin objc oggvorbis openmp oracle pam pcre perl png portaudio ppds pppd python quicktime readline realmedia reflection session sndfile spell spl sse sse2 ssl tcpd theora truetype truetype-fonts type type1-fonts unicode wmp xanim xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="vesa vga fbdev i810 mach64 nv"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Jose Quinteiro 2007-09-25 22:04:45 UTC
Created attachment 131904 [details, diff]
gnumail-1.2.0_pre3-pgpversion.patch

Rename the "version" method in PGPController to "myVersion".
Comment 2 Bernard Cafarelli gentoo-dev 2007-09-26 11:52:29 UTC
Applied in gnumail-1.2.0_pre3-r1 in portage, thanks for the patch!

Did you report it upstream also?
Comment 3 Jose Quinteiro 2007-09-26 18:25:20 UTC
Reported on gnumail-dev today.