After adding support for relative paths in umount.hal it aborts if built with _FORTIFY_SOURCE=2:
# umount.hal /boot/
*** buffer overflow detected ***: umount.hal terminated
======= Backtrace: =========
======= Memory map: ========
Fortify source is default since gcc-4.3 and thus default build is affected. Problem is that glibc explicitly requires that second argument to realpath(), device_file_or_mount_point in this case, must be larger then PATH_MAX (see info libc: On systems which define `PATH_MAX' ... the buffer must be large enough for a pathname of this size.). Since HAL_PATH_MAX=1024 is smaller then PATH_MAX=4096 this causes this abort.
I checked the code, and there's indeed a second place which uses realpath() with HAL_PATH_MAX.