net-misc/dyndnsupdate 0.6.15 gives a segfault after attempting to resolve my IP address. Reproducible: Always Steps to Reproduce: 1. Copy ebuild's folder to portage overlay and add ~amd64 keyword 2. ACCEPT_KEYWORDS="~amd64" emerge dyndnsupdate 3. dyndnsupdate -f -h [my host] -u [username]:[password] -r -s dyndns Actual Results: Outputs: "Resolving your ip address...Segmentation fault" then I am returned to my prompt Expected Results: Resolve my IP and update my dynamic DNS at dyndns.org (homeip.net specifically) emerge info: Portage 2.0.50-r1 (default-amd64-2004.0, gcc-3.3.3, glibc-2.3.2-r9, 2.6.3-gentoo-r2) ================================================================= System uname: 2.6.3-gentoo-r2 x86_64 4 Gentoo Base System version 1.4.3.13 Autoconf: sys-devel/autoconf-2.58-r1 Automake: sys-devel/automake-1.7.8 ACCEPT_KEYWORDS="amd64" AUTOCLEAN="yes" CFLAGS="-O2 -m64 -pipe -fomit-frame-pointer" CHOST="x86_64-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/co nfig /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -m64 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://mirrors.tds.net/gentoo ftp://mirrors.tds.net/gentoo ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo ftp://gentoo.netnitc o.net/pub/mirrors/gentoo/source/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X alsa amd64 apm avi berkdb crypt dedicated doc encode esd foomaticdb gdbm gif gpm gtk gtk2 imlib java jpeg libg++ libwww mikmod mo tif mozilla mpeg multilib mysql ncurses nls oggvorbis opengl oss pam pdflib perl png postgres python qt quicktime readline sdl slang spe ll ssl tcltk tcpd tiff truetype xml2 xmms xv zlib" dyndnsupdate debug (-d flag): Resolving your ip address...DEBUG: asking checkip.dyndns.org: GET / HTTP/1.1 Host: checkip.dyndns.org User-Agent: dyndnsupdate 0.6.15 - http://xzabite.org Connection: close Pragma: no-cache DEBUG: reply from checkip.dyndns.org: HTTP/1.0 200 OK Server: Cherokee/0.4.6 Pragma: no-cache Cache-Control: no-cache Content-Type: text/html Connection: close Segmentation fault
dyndnsupdate is masked... but a temporary workaround would be to use -i eth0 or -a (ip), since this bug seems to only occur when resolving. another workaround would be to emerge --buildpkg dyndnsupdate while in a 32bit chroot and then unpacking it to /usr/local just to make sure this is an amd64 bug and not just a generic dyndnsupdate bug.
Created attachment 29522 [details, diff] Patch to keep net-misc/dyndnsupdate-0.6.15 from segfaulting when resolving ip Argh, no check if ipaddr is NULL. Blame the author !
Created attachment 29523 [details, diff] Patch for the ebuild
As there is no maintainer i commited those changes myself. Fixed.
Just tried this with the patch, and get this error when attempting to update with -r. It says success, but does not update. Resolving your ip address...DEBUG: asking checkip.dyndns.org: GET / HTTP/1.1 Host: checkip.dyndns.org User-Agent: dyndnsupdate 0.6.15 - http://xzabite.org Connection: close Pragma: no-cache DEBUG: reply from checkip.dyndns.org: HTTP/1.0 200 OK Server: Cherokee/0.4.6 Pragma: no-cache Cache-Control: no-cache Content-Type: text/html Connection: close invalid reply : Success
Hm i overlooked that "success" message... Whatever, dyndnsupdate gets a HTTP Reply that doesn't contain the necessary "Address :"-Field. That is something that i can't fix, it's server side failure or the programm is outdated. However, i could keep the program from segfaulting, and that is what i did. If you want to continue using dyndnsupdate: there are parameters to supply the IP address externally or to retrieve it by looking up a net device. You can also change your client. I for example use "ez-ipupdate" successfully on my Via C3 box. Leaving as fixed.