Your message dated Thu, 27 Aug 2015 22:05:35 +0000
with message-id <[email protected]>
and subject line Bug#793475: fixed in zsh 5.0.8-test-3-1
has caused the Debian Bug report #793475,
regarding Segfault in __strlen_sse2_bsf
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
793475: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=793475
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: zsh
Version: 5.0.8-3
Severity: normal

Hi,

zsh 5.0.8 segfaults on the

while [[ -n "$1" ]]; do

line in the attached script; zsh 5.0.7 (and before) was fine.

gdb backtrace:

#0  __strlen_sse2_bsf () at ../sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S:50
#1  0x080bc801 in taddstr (s=0x1f09d4a3 <error: Cannot access memory at address 
0x1f09d4a3>) at ../../Src/text.c:115
#2  0x080bc952 in taddlist (state=state@entry=0xffffcbf0, num=30, num@entry=57) 
at ../../Src/text.c:141
#3  0x080bdc58 in taddlist (num=57, state=0xffffcbf0) at ../../Src/text.c:637
#4  gettext2 (state=state@entry=0xffffcbf0) at ../../Src/text.c:472
#5  0x080bdfdf in getjobtext (prog=0xf7fd6b98, c=0xf7fd6cb8) at 
../../Src/text.c:230
#6  0x0806bdcd in execpline2 (state=state@entry=0xffffce70, 
pcode=pcode@entry=1411, how=how@entry=18, input=0, output=0, last1=0) at 
../../Src/exec.c:1710
#7  0x0806c0f6 in execpline (state=state@entry=0xffffce70, slcode=<optimized 
out>, how=how@entry=18, last1=0) at ../../Src/exec.c:1500
#8  0x0806d23d in execlist (state=0xffffce70, dont_change_job=0, exiting=0) at 
../../Src/exec.c:1276
#9  0x0806d4d4 in execode (p=0xf7fd6b98, dont_change_job=0, exiting=0, 
context=0x80cca55 "toplevel") at ../../Src/exec.c:1074
#10 0x0807ee41 in loop (toplevel=1, justonce=0) at ../../Src/init.c:207
#11 0x08081dbe in zsh_main (argc=2, argv=0xffffd024) at ../../Src/init.c:1674
#12 0x0805497b in main (argc=2, argv=0xffffd024) at ../../Src/main.c:93

Andras

Versions of packages zsh depends on:
ii  dpkg        1.18.0
ii  libc6       2.19-18
ii  libcap2     1:2.24-8
ii  libtinfo5   5.9+20150516-1
ii  zsh-common  5.0.7-6

Versions of packages zsh recommends:
ii  libncursesw5  5.9+20150516-1
ii  libpcre3      2:8.35-3.3

Versions of packages zsh suggests:
pn  zsh-doc  <none>

-- no debconf information
#!/bin/zsh
#
# This script is intended to wrap start-stop-daemon. It will call the
# original start-stop-daemon with the supplied arguments unless the daemon
# to be started appears to exist as a runit service, in which case it will
# map the start-stop-daemon call to an sv(8) call.
#

# If called by non-root user, fall back to original start-stop-daemon
# unconditionally
[[ $UID -gt 0 ]] && exec /sbin/start-stop-daemon.real $@

set -A args $@

SVDIR=${SVDIR:-/etc/service}

unset mode signal exec timeout startas testmode oknodo quiet verbose command 
svstat
oknodo=0
quiet=0

while [[ -n "$1" ]]; do
        case "$1" in
                -S|--start)
                        mode=start
                        ;;
                -K|--stop)
                        mode=stop
                        ;;
                -T|--status)
                        mode=status
                        ;;
                -H|--help|-V|--version)
                        exec /sbin/start-stop-daemon.real $args
                        ;;
                -x|--exec)
                        shift
                        exec="$1"
                        ;;
                -s|--signal)
                        shift
                        signal=$1
                        ;;
                --signal=*)
                        signal="${1/--signal=/}"
                        ;;
                -R|--retry)
                        shift
                        timeout="$1"
                        ;;
                --retry=*)
                        timeout="${1/--retry=/}"
                        ;;
                -a|--startas)
                        shift
                        startas="$1"
                        ;;
                -t|--test)
                        testmode=1
                        ;;
                -o|--oknodo)
                        oknodo=1
                        ;;
                -q|--quiet)
                        quiet=1
                        exec >/dev/null
                        ;;
                -v|--verbose)
                        verbose=1
                        ;;
                
-p|--pidfile|-n|--name|-u|--user|-g|--group|-r|--chroot|-d|--chdir|-N|--nicelevel|-P|--procsched|-I|--iosched|-k|--umask|-m|--make-pidfile)
                        # ignored
                        shift
                        ;;
                
--pidfile=*|-b|--background|--nicelevel=*|--procsched=*|--iosched=*|--umask=*)
                        ;;
                --)
                        # What follows is args to the daemon. Avoid parsing
                        # those accidentally.
                        break
                        ;;
                *)
                        # Assume the previous was the last option; the rest
                        # is the name of the daemon plus args, of which we
                        # only care about the daemon.
                        command=$1
                        break
                        ;;
        esac
        shift
done

# returns success if $1 appears to be the name of a runit service
function issvname() {
        if [[ -d "$SVDIR/$1/supervise/." ]]; then
                return 0
        # 'supervise' could still be a symlink to a directory that doesn't 
exist yet
        elif [[ -L $SVDIR/$1/supervise ]] && ! [[ -e $SVDIR/$1/supervise ]]; 
then
                return 0
        else
                return 1
        fi
}

# TODO: decide what to do if the runit service we're supposed to manage
# doesn't exist in the current svdir but does in other "runlevels"

# Try to infer runit service name. If our parent is an initscript, use its
# basename
foundsvname=0
read -A cmdline </proc/$PPID/cmdline
while [[ -n "$cmdline[1]" ]]; do
        if [[ "${cmdline[1]:h}" = /etc/init.d ]]; then
                svname=${cmdline[1]:t}
                break
        fi
        shift cmdline
done
if [[ -z "$svname" ]] && [[ "${$(readlink -f /proc/$PPID/exe):h}" = /etc/init.d 
]]; then
        read svname < /proc/$PPID/comm
fi

issvname $svname && foundsvname=1

# if not, try other heuristics
if [[ $foundsvname = 0 ]]; then
        svnames=($startas $exec $command)
        while [[ -n "$svnames[1]" ]]; do
                if issvname ${svnames[1]:t}; then
                        svname=${svnames[1]:t}
                        foundsvname=1
                        break
                else
                        shift svnames
                fi
        done
fi

# if still not found, call real start-stop-daemon
if [[ "$foundsvname" = 0 ]]; then
        exec /sbin/start-stop-daemon.real $args
fi

# otherwise, do what we've been asked to
[[ "$quiet" = "0" ]] && [[ "$verbose" = "1" ]] && echo 
"start-stop-daemon.runit: will act on $svname service." >&2

function sendsig() {
        case "$signal" in
                HUP|1)
                        sv hup $svname
                        ;;
                INT|2)
                        sv interrupt $svname
                        ;;
                QUIT|3)
                        sv quit $svname
                        ;;
                KILL|9)
                        sv d $svname
                        sv kill $svname
                        ;;
                USR1|10)
                        sv 1 $svname
                        ;;
                USR2|12)
                        sv 2 $svname
                        ;;
                ALRM|14)
                        sv alarm $svname
                        ;;
                TERM|15)
                        sv down $svname
                        ;;
                CONT|18)
                        sv cont $svname
                        ;;
                STOP|19)
                        sv pause $svname
                        ;;
                *)
                        echo "$0: ERROR: don't know how to send $signal signal 
to $svname." >&2
                        exit 3
                        ;;
        esac
}

function wait_until_exited() {
        counter=0
        read svstat < $SVDIR/$svname/supervise/stat
        while ! [[ "$svstat" = down ]]; do
                ((counter++))
                [[ $counter -gt $timeout ]] && return 1
                sleep 1
                read svstat < $SVDIR/$svname/supervise/stat
        done
        return 0
}

function do_stop() {
        if [[ $timeout =~ / ]]; then
# handle complex schedule
                OLDIFS="$IFS"
                IFS=/
                echo $timeout | read -A schedule
                IFS="$OLDIFS"
                while [[ -n "$schedule[1]" ]]; do
                        signal=$schedule[1]
                        sendsig
                        shift schedule
                        timeout=$schedule[1]
                        wait_until_exited && exit 0
                        shift schedule
                done
                exit 2
        else
# simple timeout
                if [[ -z "$signal" ]]; then
                        if [[ $timeout =~ ^[0-9]+$ ]]; then
                                export SVWAIT=$timeout
                        fi
                        if sv stop $svname; then
                                exit 0
                        else
                                exit 1
                        fi
                else
                        sendsig
                        [[ -n "$timeout" ]] && if wait_until_exited; then
                                exit 0
                        else
                                exit 1
                        fi
                fi
        fi
}

if [[ -r $SVDIR/$svname/supervise/stat ]]; then
        read svstat < $SVDIR/$svname/supervise/stat
else
        # runsv is not yet up
        svstat=none
fi
case "$mode" in
        start)
                [[ "$svstat" = run ]] && [[ "$oknodo" = "0" ]] && exit 1 # 
Emulate start-stop-daemon semantics
                [[ -z "$testmode" ]] && ! [[ "$svstat" = "none" ]] && sv start 
$svname
                exit 0
                ;;
        stop)
                [[ "$svstat" = none ]] && exit 0
                [[ "$svstat" = down ]] && [[ "$oknodo" = "1" ]] && exit 1 # 
Emulate start-stop-daemon semantics
                [[ -z "$testmode" ]] && do_stop # handles --retry and --signal, 
therefore separate function
                
                ;;
        status)
                case "$svstat" in
# States are complex; we only handle the most basic cases here and bail on
# the rest (e.g. "finish" cannot be correctly reported as "running" or "not
# running")
                        run)
                                exit 0
                                ;;
                        down|none)
                                exit 3
                                ;;
                        *)
                                exit 4
                                ;;
                esac
                ;;
esac
exit 0

--- End Message ---
--- Begin Message ---
Source: zsh
Source-Version: 5.0.8-test-3-1

We believe that the bug you reported is fixed in the latest version of
zsh, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Axel Beckert <[email protected]> (supplier of updated zsh package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Thu, 27 Aug 2015 23:17:07 +0200
Source: zsh
Binary: zsh-common zsh zsh-doc zsh-static zsh-dev zsh-dbg
Architecture: source all amd64
Version: 5.0.8-test-3-1
Distribution: experimental
Urgency: low
Maintainer: Debian Zsh Maintainers <[email protected]>
Changed-By: Axel Beckert <[email protected]>
Description:
 zsh        - shell with lots of features
 zsh-common - architecture independent files for Zsh
 zsh-dbg    - shell with lots of features (debugging symbols)
 zsh-dev    - shell with lots of features (development files)
 zsh-doc    - zsh documentation - info/HTML format
 zsh-static - shell with lots of features (static link)
Closes: 793475 794696
Changes:
 zsh (5.0.8-test-3-1) experimental; urgency=low
 .
   * [6f1dd991] New upstream release candidate
     + [171196a8] Remove all cherry-picked patches.
     + [290354ff] Fixes segfault in __strlen_sse2_bsf (Closes: #793475)
   * [a248c1e0] Set $(VENDOR) to sanitized output of "dpkg-vendor --query 
vendor"
     (Closes: #794696)
   * [e04a1973] Clint Adams prefers to be removed from Uploaders. Thanks to
     Clint for maintaining Debian's zsh package for so long!
   * [bfda86c5,5c3b312c] Update sole patch to integrate further test suite 
fixes.
Checksums-Sha1:
 3c74371f4efc2681233de6a7dfa72b2c949e3361 2551 zsh_5.0.8-test-3-1.dsc
 d21f0639c81bc3900811781b33b3ee92d84dc997 2435420 zsh_5.0.8-test-3.orig.tar.xz
 309708966cf7b42f9c78defd9406df8b04306e49 69780 zsh_5.0.8-test-3-1.debian.tar.xz
 7eb619a536661a56dd877cac80557ad98838a2f8 3274444 
zsh-common_5.0.8-test-3-1_all.deb
 7d5a7903ec47f3fec44a280dbd5ae72c1a8d6aac 1568624 
zsh-dbg_5.0.8-test-3-1_amd64.deb
 37d966363cc472bb90056b24850540aab919ff20 180860 
zsh-dev_5.0.8-test-3-1_amd64.deb
 87a3ed9f8182a002ab2d21e6e8d786e21624d94b 2543976 zsh-doc_5.0.8-test-3-1_all.deb
 89127030c5f6ed963deea8b9f55b9a2bd927945e 985954 
zsh-static_5.0.8-test-3-1_amd64.deb
 ab60da9594fd185cdcaf35f68693df5472828cf7 750634 zsh_5.0.8-test-3-1_amd64.deb
Checksums-Sha256:
 4a5b941c595621f2c47bb7ce552c47d2eff423ff5df0e4b64586f3f825640d7d 2551 
zsh_5.0.8-test-3-1.dsc
 ac901a9edae6dd981c7f452c015f270036fac770f32415f89a5bea8f164106ec 2435420 
zsh_5.0.8-test-3.orig.tar.xz
 ad33953a6600d0055784f45ef5c04181921d971a770687f27908e00b3148ce05 69780 
zsh_5.0.8-test-3-1.debian.tar.xz
 b988ce864948efc41d149745f19649387149567ea9c29b457721e1038e04c620 3274444 
zsh-common_5.0.8-test-3-1_all.deb
 06eead27319e525c7f39e9ac08a4d41a2b3775de22cad761b49ea57301bcb9bf 1568624 
zsh-dbg_5.0.8-test-3-1_amd64.deb
 bad5f4499f1b2cf577dc3fe42090996df76186bf1b91e575fe7ceb967be81e66 180860 
zsh-dev_5.0.8-test-3-1_amd64.deb
 847e64a4d5d3bdd3cf4307628efe5b7a553d5c2ea1a97b181c74b000bb965f6d 2543976 
zsh-doc_5.0.8-test-3-1_all.deb
 2c686a950b23847b3dca301f215563e93739c93e00c73a4a42862930850f7b12 985954 
zsh-static_5.0.8-test-3-1_amd64.deb
 8947c7a0d72502bded0466223ca0d487ad3f9fd1244ed3a29efe6a71d5b62ed4 750634 
zsh_5.0.8-test-3-1_amd64.deb
Files:
 4b3a09838e16229ef276020367031148 2551 shells optional zsh_5.0.8-test-3-1.dsc
 610a4bf04cf44eebdce69d0efc5c0e25 2435420 shells optional 
zsh_5.0.8-test-3.orig.tar.xz
 cb16beee194d6ec3f2d5111b86320b60 69780 shells optional 
zsh_5.0.8-test-3-1.debian.tar.xz
 91ad7ed8386b0266c45a48ba93a21810 3274444 shells optional 
zsh-common_5.0.8-test-3-1_all.deb
 0dc77259d2cfd9644c30949eb504859a 1568624 debug extra 
zsh-dbg_5.0.8-test-3-1_amd64.deb
 2f7873da6ad5dad06c7e849fc11950b5 180860 libdevel optional 
zsh-dev_5.0.8-test-3-1_amd64.deb
 28114d2a2a2a94caa9558df4feba040f 2543976 doc optional 
zsh-doc_5.0.8-test-3-1_all.deb
 186254f008d9d619f556ba16791a6be5 985954 shells optional 
zsh-static_5.0.8-test-3-1_amd64.deb
 ff1972c1f8f183c721830c5b04bf8cd7 750634 shells optional 
zsh_5.0.8-test-3-1_amd64.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBCAAGBQJV34EEAAoJEGvmY8daNcl14VoP/2HnJhGY+iUGr477rzd1lPsP
+UQ07QkahpYhKD9/BFZL3MxHjrjPu/ymuc4jbFTMJ0ndvQ5kQQK//scnWP9/o2JJ
K+g6STUesYHywehHZ2kVj1MFGGvcroccfBpMNzsQWo0QLE2fnDYEjKiBClsWLeBO
GtftoWCtfbPfbABc2/UxGLw3S3AnKtWJVD4rwcsHdSPxxkz1DsB1Tf80FeNkG6D7
P05N4mlRofLKi6Zpsn1nxMe03+6ABQ3QHBzVvayDmdAI7tGbIlPMHRizwVciI1wA
ivc9qOHdVGZciVXBoStE07OnqQ6lARtKzd76RJcelMLC5z3tTwDDRxs4tUVAspWq
wetnydwJLvNSWhyi6HiprjivCrnouFCkp4etCVE+/lDwmVnnxjz51+ReSoQh3cl+
nfn8THBy8fyKpVIhKoZ1Qo+3yNvYzse8eRrDlpAdO6jcqlt9cLK2lZcZNGDNtOlt
54TOtab1akBG1H9pLGYF2/UBnpYHbRCEOFTeop28/5SnOIq28WNKayyJUXepqxIJ
AVNNSTYotU+8/fqMvKRBjMeXKaFrRcopLZI2OVhCVoxDQ014Rlc9AYWz6qVf1O8Z
NKpKNBISpHYznGY/5/0f/M3LFJCGyCJiwih7jxeUuO3cIQHJS9EB0Ju4k8mthkPQ
sG3gheSpMan/tCA+BvwR
=04uF
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to