commit ksh for openSUSE:Factory
Hello community, here is the log from the commit of package ksh for openSUSE:Factory checked in at 2013-11-29 16:22:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ksh (Old) and /work/SRC/openSUSE:Factory/.ksh.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "ksh" Changes: -------- --- /work/SRC/openSUSE:Factory/ksh/ksh.changes 2013-11-12 09:50:26.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.ksh.new/ksh.changes 2013-11-29 16:22:50.000000000 +0100 @@ -1,0 +2,15 @@ +Wed Nov 20 11:42:55 UTC 2013 - werner@suse.de + +- Make typeset builtin not crash but show an error (bnc#851300) + +------------------------------------------------------------------- +Mon Nov 18 16:04:27 UTC 2013 - werner@suse.de + +- Extend patch ksh93-sfio.dif which may avoid yet an other crash + +------------------------------------------------------------------- +Thu Nov 14 13:55:13 UTC 2013 - werner@suse.de + +- Finally the last changes had fixed the crash reportd in bnc#844071 + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ksh.spec ++++++ --- /var/tmp/diff_new_pack.QrcbaV/_old 2013-11-29 16:22:51.000000000 +0100 +++ /var/tmp/diff_new_pack.QrcbaV/_new 2013-11-29 16:22:51.000000000 +0100 @@ -552,6 +552,7 @@ test "$result" = xy || exit 1 result=$(${SHELL} -c 'echo | echo "x$(/bin/echo y)"') test "$result" = xy || exit 1 + ${SHELL} -c 'trap "exit 0" EXIT; typeset -T X=(typeset x; function x.get { :; }); X -a xs=((x=yo) (x=jo))' exec 3> ${TMPDIR:-/tmp}/log LANG=POSIX strace $MEMORY -o '!%{S:31}' ${SHELL} %{S:10} 400 ++++++ ksh93-fdstatus.dif ++++++ --- /var/tmp/diff_new_pack.QrcbaV/_old 2013-11-29 16:22:51.000000000 +0100 +++ /var/tmp/diff_new_pack.QrcbaV/_new 2013-11-29 16:22:51.000000000 +0100 @@ -1,3 +1,9 @@ +| Fix for bnc#814135, bnc#808449, bnc#835885, and bnc#844071 +| - crash in bestreclaim() after traversing a memory block with a very large size (ksh) +| - set -k does not work properly with ksh-93t-13.17 and higher +| - Problem after update of ksh from ksh-93u-0.14.1 to ksh-93u-0.22.1 +| - Regression: Fix crash in sfio code of libast +| This is a backport from the beta version ksh93v-2013-10-10 --- src/cmd/ksh93/bltins/enum.c +++ src/cmd/ksh93/bltins/enum.c 2013-10-25 13:26:45.739248213 +0000 @@ -266,7 +266,9 @@ int b_enum(int argc, char** argv, Shblti @@ -1559,7 +1565,22 @@ } } return(parent); -@@ -3479,8 +3524,7 @@ static void sh_funct(Shell_t *shp,Namval +@@ -3420,7 +3469,13 @@ int sh_funscope(int argn, char *argv[],i + if(np && (nq=*nref++)) + { + np->nvalue.nrp = newof(0,struct Namref,1,0); +- np->nvalue.nrp->np = nq; ++ if(nv_isattr(nq,NV_LDOUBLE)==NV_LDOUBLE) ++ np->nvalue.nrp->np = nq; ++ else ++ { ++ np->nvalue.nrp->np = (Namval_t*)pointerof((Sflong_t)(*nq->nvalue.ldp)); ++ nv_onattr(nq,NV_LDOUBLE); ++ } + nv_onattr(np,NV_REF|NV_NOFREE); + } + } +@@ -3479,8 +3530,7 @@ static void sh_funct(Shell_t *shp,Namval struct funenv fun; char *fname = nv_getval(SH_FUNNAMENOD); struct Level *lp =(struct Level*)(SH_LEVELNOD->nvfun); @@ -1577,7 +1598,7 @@ #if 0 nv_putval(SH_FUNNAMENOD,shp->st.funname,NV_NOFREE); #else -@@ -3628,11 +3671,11 @@ static void coproc_init(Shell_t *shp, in +@@ -3628,11 +3677,11 @@ static void coproc_init(Shell_t *shp, in sh_pipe(shp->cpipe); if((outfd=shp->cpipe[1]) < 10) { @@ -1591,7 +1612,7 @@ shp->fdstatus[outfd] = IOCLOSE; shp->cpipe[1] = fd; } -@@ -3721,7 +3764,7 @@ static int run_subshell(Shell_t *shp,con +@@ -3721,7 +3770,7 @@ static int run_subshell(Shell_t *shp,con if(!shp->gd->shpath) shp->gd->shpath = pathshell(); pid = spawnveg(shp->shpath,arglist,envlist,grp); @@ -1600,7 +1621,7 @@ for(i=3; i < 10; i++) { if(shp->fdstatus[i]&IOCLEX && i!=pin && i!=pout) -@@ -4002,7 +4045,7 @@ static pid_t sh_ntfork(Shell_t *shp,cons +@@ -4002,7 +4051,7 @@ static pid_t sh_ntfork(Shell_t *shp,cons shp->gd->shpath = pathshell(); spawnpid = path_spawn(shp,shp->gd->shpath,&argv[-1],arge,pp,(grp<<1)|1); if(fd>=0) ++++++ ksh93-sfio.dif ++++++ --- /var/tmp/diff_new_pack.QrcbaV/_old 2013-11-29 16:22:51.000000000 +0100 +++ /var/tmp/diff_new_pack.QrcbaV/_new 2013-11-29 16:22:51.000000000 +0100 @@ -182,7 +182,27 @@ --- src/lib/libast/sfio/sfsetbuf.c +++ src/lib/libast/sfio/sfsetbuf.c 2013-10-18 12:02:37.534736056 +0000 -@@ -254,6 +254,15 @@ size_t size; /* buffer size, -1 for defa +@@ -190,7 +190,9 @@ size_t size; /* buffer size, -1 for defa + #ifdef MAP_TYPE + if(f->bits&SF_MMAP) + { if(f->data) +- { SFMUNMAP(f,f->data,f->endb-f->data); ++ { if(f->getr && (f->mode&SF_GETR) && f->next) ++ f->next[-1] = f->getr; ++ SFMUNMAP(f,f->data,f->endb-f->data); + f->data = NIL(uchar*); + } + } else +@@ -204,6 +206,8 @@ size_t size; /* buffer size, -1 for defa + + f->flags &= ~SF_MALLOC; + f->bits &= ~SF_MMAP; ++ f->mode &= ~SF_GETR; ++ f->getr = 0; + + /* pure read/string streams must have a valid string */ + if((f->flags&(SF_RDWR|SF_STRING)) == SF_RDSTR && +@@ -254,6 +258,15 @@ size_t size; /* buffer size, -1 for defa #endif } @@ -198,7 +218,7 @@ #if SFSETLINEMODE if(init) f->flags |= sfsetlinemode(); -@@ -308,15 +317,6 @@ size_t size; /* buffer size, -1 for defa +@@ -308,15 +325,6 @@ size_t size; /* buffer size, -1 for defa (void)_sfpopen(f,-1,-1,1); } } ++++++ ksh93-typedef.dif ++++++ --- /var/tmp/diff_new_pack.QrcbaV/_old 2013-11-29 16:22:51.000000000 +0100 +++ /var/tmp/diff_new_pack.QrcbaV/_new 2013-11-29 16:22:51.000000000 +0100 @@ -18,6 +18,15 @@ if(aflag=='+') return; if(nv_isarray(np) && nv_arrayptr(np)) +@@ -538,7 +541,7 @@ static int setall(char **argv,regist + } + else if(*shp->prefix==0) + shp->prefix = 0; +- if(*argv[0]=='+') ++ if(*argv && *argv[0]=='+') + nvflags |= NV_NOADD; + flag &= ~(NV_NOARRAY|NV_NOSCOPE|NV_VARNAME|NV_IDENT|NV_STATIC|NV_COMVAR|NV_IARRAY); + if(argv[1]) @@ -675,6 +678,7 @@ static int setall(char **argv,regist { if(comvar || (shp->last_root==shp->var_tree && (tp->tp || (!shp->st.real_fun && (nvflags&NV_STATIC)) || (!(flag&(NV_EXPORT|NV_RDONLY)) && nv_isattr(np,(NV_EXPORT|NV_IMPORT))==(NV_EXPORT|NV_IMPORT))))) -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@hilbert.suse.de