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 - [email protected]
+
+- Make typeset builtin not crash but show an error (bnc#851300) 
+
+-------------------------------------------------------------------
+Mon Nov 18 16:04:27 UTC 2013 - [email protected]
+
+- Extend patch ksh93-sfio.dif which may avoid yet an other crash 
+
+-------------------------------------------------------------------
+Thu Nov 14 13:55:13 UTC 2013 - [email protected]
+
+- 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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to