Hello community,

here is the log from the commit of package ksh for openSUSE:Factory checked in 
at 2013-11-07 12:53:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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-09-23 09:37:27.000000000 
+0200
+++ /work/SRC/openSUSE:Factory/.ksh.new/ksh.changes     2013-11-07 
12:53:05.000000000 +0100
@@ -1,0 +2,27 @@
+Fri Oct 25 14:07:57 UTC 2013 - [email protected]
+
+- Add missing sfsetbuf() in patch ksh93-fdstatus.dif
+- Rework patch ksh93-dttree-crash.dif 
+- Rework patch ksh93-uninitialized.dif
+
+-------------------------------------------------------------------
+Tue Oct 22 11:58:21 UTC 2013 - [email protected]
+
+- Change patch ksh93-fdstatus.dif by adding some more EINTR wrapper 
+
+-------------------------------------------------------------------
+Fri Oct 18 12:21:58 UTC 2013 - [email protected]
+
+- Add patch ksh93-sfio.dif as on overlapping memory areas there
+  should memmove be used instead of memcopy (backport 2013-10-10)
+
+-------------------------------------------------------------------
+Fri Oct 18 10:41:05 UTC 2013 - [email protected]
+
+- Change patch ksh93-fdstatus.dif which may solve bnc#844071
+- Add patch ksh93-fs3d.dif to avoid crash due dummy function call
+  fs3d_mount(3ast) during valgrind sessions
+- Add patch ksh93-uninitialized.dif to avoid sometimes random
+  errors on busy systems which may also related to bnc#844071
+
+-------------------------------------------------------------------

New:
----
  ksh93-fs3d.dif
  ksh93-sfio.dif
  ksh93-uninitialized.dif

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ksh.spec ++++++
--- /var/tmp/diff_new_pack.O5TqHr/_old  2013-11-07 12:53:06.000000000 +0100
+++ /var/tmp/diff_new_pack.O5TqHr/_new  2013-11-07 12:53:06.000000000 +0100
@@ -129,6 +129,12 @@
 Patch33:        ksh93-fdstatus.dif
 # PATCH-FIX-UPSTREAM ksh93-alias-k.dif [bnc#824187]
 Patch34:        ksh93-alias-k.dif
+# PATCH-FIX-SUSE Reduce warnings about uninitialized varaibles (most of them 
are handled correct)
+Patch35:        ksh93-uninitialized.dif
+# PATCH-FIX-SUSE Do not use mount(2) system call instead of fs3d_mount(3ast)
+Patch36:        ksh93-fs3d.dif
+# PATCH-FIX-UPSTREAM Ouch ... use memmove instead of memcopy on overlapping 
areas
+Patch37:        ksh93-sfio.dif
 Patch42:        ksh-locale.patch
 
 %description
@@ -217,6 +223,9 @@
 %patch32
 %patch33
 %patch34
+%patch35
+%patch36
+%patch37
 
 %build
   #
@@ -245,9 +254,6 @@
          test -s $fd -a ! -c $fd && break || true
       done
       set -- $(readlink $fd)
-grep pts /proc/mounts
-ls -ld /dev/ptmx
-ls -ld /dev/pts
       exec ./sigexec $SHELL ${1+"$@"}
   fi
   IGNORED=0x$(ps --no-headers -o ignored $$)
@@ -324,6 +330,7 @@
   cflags -Wno-implicit                 IGNORE
   cflags -Wno-unused-value             IGNORE
   cflags -Wno-type-limits              IGNORE
+  cflags -Wclobbered                   RPM_OPT_FLAGS
   #
   # Do not use -DSHOPT_SPAWN=1 and/or -DSHOPT_AMP=1 this would cause
   # errors due race conditions while executing the test suite.
@@ -466,7 +473,7 @@
   done
   nobuiltin=${PWD}/.nobuiltin
   nm -D ${root}/lib/libast.so | \
-      grep -E 'T[[:blank:]](_ast_)?(str|mem|(get|put|set)env|(c|m|re|v)alloc)' 
| \
+      grep -E 
'T[[:blank:]](_ast_)?(str|mem|(get|put|set)env|free|(c|m|re|v|vm)alloc)' | \
       sed -r 
's/[[:xdigit:]]+[[:blank:]]+T[[:blank:]]+(_ast_)?([^[:blank:]]*)/-fno-builtin-\2/'
 | \
       sort -u > $nobuiltin
   rm -rf $root
@@ -481,7 +488,7 @@
   *) cflags @$nobuiltin                                RPM_OPT_FLAGS
   esac
 
-  export > .env
+  export | grep -vE 'PROFILEREAD|PWD|MAIL|HOME|HOST|HIST|LESS|TMP' > .env
   bin/package make CCFLAGS="$RPM_OPT_FLAGS -I${root}/include" 
HOSTTYPE="$HOSTTYPE" AR="$AR" CC="$CC"
   root=$(echo ${PWD}/arch/linux*)
   test -d $root || exit 1
@@ -535,7 +542,16 @@
       sed -ri '/^L[[:blank:]]/a \t 8000' pty.sh
       sed -ri 's/(SECONDS[[:blank:]]*>[[:blank:]]*)([[:digit:]]+)/\18/' 
signal.sh
       unset ${!LESS*}
+      printf '\033[1m'
+      grep -E '^(model name|flags)[[:blank:]]*:' /proc/cpuinfo | sort -ur | 
fold -s
+      printf '\033(B\033[m'
       ${SHELL} shtests
+      result=$(${SHELL} -k -c 'd=`/bin/echo x y=z`; echo $d x y=z')
+      test "$result" = 'x x' || exit 1
+      result=$(${SHELL} -c 'echo | echo "x`/bin/echo y`"')
+      test "$result" = xy || exit 1
+      result=$(${SHELL} -c 'echo | echo "x$(/bin/echo y)"')
+      test "$result" = xy || exit 1
       exec 3> ${TMPDIR:-/tmp}/log
       LANG=POSIX
       strace $MEMORY -o '!%{S:31}' ${SHELL} %{S:10} 400
@@ -567,7 +583,9 @@
       fi
       LANG=POSIX
       exec 3>&-
+      printf '\033[1m'
       uniq  -c ${TMPDIR:-/tmp}/log
+      printf '\033(B\033[m'
       killall -q -s 9 ${SHELL} || true
   popd
 %endif
@@ -704,7 +722,7 @@
   else
     cp %{S:3} EPL-1.0
     cp %{S:4} CPL-1.0
-    ln -sf EPL-v1.0 LICENSE
+    ln -sf EPL-1.0 LICENSE
   fi
   mv  src/cmd/ksh93/OBSOLETE src/cmd/ksh93/OBSOLETE.mm
   echo '.VERBON 22' > grep.mm

++++++ ksh93-builtin.dif ++++++
--- /var/tmp/diff_new_pack.O5TqHr/_old  2013-11-07 12:53:07.000000000 +0100
+++ /var/tmp/diff_new_pack.O5TqHr/_new  2013-11-07 12:53:07.000000000 +0100
@@ -1,6 +1,6 @@
 --- src/cmd/builtin/pty.c
 +++ src/cmd/builtin/pty.c      2013-02-01 15:59:52.697952156 +0000
-@@ -216,13 +216,19 @@ mkpty(int* master, int* slave)
+@@ -216,27 +216,64 @@ mkpty(int* master, int* slave)
  #if !_lib_openpty
        char*           sname;
  #endif
@@ -17,34 +17,64 @@
  
 -      alarm(4);
 -      if (tcgetattr(STDERR_FILENO, &tty) >= 0)
+-              ttyp = &tty;
+-      else
 +      alarm(6);
-+      if (tcgetattr(sffileno(sfstderr), &tty) >= 0)
-               ttyp = &tty;
-       else
++      if (tcgetattr(sffileno(sfstderr), &tty) < 0)
        {
-@@ -230,7 +236,7 @@ mkpty(int* master, int* slave)
-               error(-1, "unable to get standard error terminal attributes");
++              if (errno != ENOTTY)
++                      error(-1, "unable to get standard error terminal 
attributes");
++              cfmakeraw(&tty);
+               ttyp = 0;
+-              error(-1, "unable to get standard error terminal attributes");
        }
++      tty.c_lflag |= ICANON | IEXTEN | ISIG | ECHO|ECHOE|ECHOK|ECHOKE;
++      tty.c_oflag |= (ONLCR | OPOST);
++      tty.c_oflag &= ~(OCRNL | ONLRET);
++      tty.c_iflag |= BRKINT;
++      tty.c_iflag &= ~IGNBRK;
++      tty.c_lflag |= ISIG;
++      tty.c_cc[VTIME] = 0;
++      tty.c_cc[VMIN] = CMIN;
++#ifdef B115200
++      cfsetispeed(&tty, B115200);
++      cfsetospeed(&tty, B115200);
++#elif defined(B57600)
++      cfsetispeed(&tty, B57600);
++      cfsetospeed(&tty, B57600);
++#elif defined(B38400)
++      cfsetispeed(&tty, B38400);
++      cfsetospeed(&tty, B38400);
++#endif
++      ttyp = &tty;
  #ifdef TIOCGWINSZ
 -      if (ioctl(STDERR_FILENO, TIOCGWINSZ, &win) >= 0)
-+      if (ioctl(sffileno(sfstderr), TIOCGWINSZ, &win) >= 0)
-               winp = &win;
-       else
+-              winp = &win;
+-      else
++      if (ioctl(sffileno(sfstderr), TIOCGWINSZ, &win) < 0)
        {
-@@ -238,6 +244,12 @@ mkpty(int* master, int* slave)
-               error(-1, "unable to get standard error window size");
++              if (errno != ENOTTY)
++                      error(-1, "unable to get standard error window size");
++              win.ws_row = 0;
++              win.ws_col = 0;
+               winp = 0;
+-              error(-1, "unable to get standard error window size");
        }
- #endif
++      if (win.ws_row < 24)
++              win.ws_row = 24;
++      if (win.ws_col < 80)
++              win.ws_col = 80;
++      winp = &win;
++#endif
 +#ifdef __linux__
 +# if !_lib_openpty
 +#  undef  _lib_openpty
 +#  define _lib_openpty 1
 +# endif
-+#endif
+ #endif
  #if _lib_openpty
        if (openpty(master, slave, NULL, ttyp, winp) < 0)
-               return -1;
-@@ -279,6 +291,9 @@ mkpty(int* master, int* slave)
+@@ -279,6 +316,9 @@ mkpty(int* master, int* slave)
  #if !O_cloexec
        fcntl(*slave, F_SETFD, FD_CLOEXEC);
  #endif
@@ -54,7 +84,7 @@
        alarm(0);
        return 0;
  }
-@@ -317,9 +332,13 @@ process(Sfio_t* mp, Sfio_t* lp, int dela
+@@ -317,9 +357,13 @@ process(Sfio_t* mp, Sfio_t* lp, int dela
        char*           s;
        Sfio_t*         ip;
        Sfio_t*         sps[2];
@@ -69,7 +99,7 @@
        {
                i = 0;
                t = timeout;
-@@ -336,39 +355,39 @@ process(Sfio_t* mp, Sfio_t* lp, int dela
+@@ -336,39 +380,39 @@ process(Sfio_t* mp, Sfio_t* lp, int dela
                {
                        if (n < 0)
                                error(ERROR_SYSTEM|2, "poll failed");

++++++ ksh93-dttree-crash.dif ++++++
--- /var/tmp/diff_new_pack.O5TqHr/_old  2013-11-07 12:53:07.000000000 +0100
+++ /var/tmp/diff_new_pack.O5TqHr/_new  2013-11-07 12:53:07.000000000 +0100
@@ -40,7 +40,7 @@
                                                shp->fpathdict = 
dtopen(&_Rpdisc,Dtobag);
 -                                      if(shp->fpathdict)
 +                                      if(shp->fpathdict) {
-+                                              
dtuserdata(shp->fpathdict,shp,1);
++                                      /*      
dtuserdata(shp->fpathdict,shp,1); */
                                                dtinsert(shp->fpathdict,rp);
 +                                      }
                                }

++++++ ksh93-fdstatus.dif ++++++
++++ 1834 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/ksh/ksh93-fdstatus.dif
++++ and /work/SRC/openSUSE:Factory/.ksh.new/ksh93-fdstatus.dif

++++++ ksh93-fs3d.dif ++++++
2013-10-17 10:30:20 - [email protected]

Found by debugging with valgrind and environment variable LD_LIBRARY_PATH that
the mount() system call function from the glibc is used instead of a 
fs3d_mount()
function.  To avoid this make fs3d_mount() a weak symbol to be overloadable by
a shared library function and make the stub function return -1 for not 
configured
file system type.

--- src/lib/libast/misc/fs3d.c
+++ src/lib/libast/misc/fs3d.c  2013-10-17 10:30:20.000000000 +0000
@@ -28,6 +28,20 @@
  * only active for non-shared 3d library
  */
 
+#if defined(__linux__) && defined(__GNUC__)
+# if defined __USE_ISOC99
+#  define _cat_pragma(exp)     _Pragma(#exp)
+#  define _weak_pragma(exp)    _cat_pragma(weak name)
+# else
+#  define _weak_pragma(exp)
+# endif
+# define _declare(name,sym)    __extension__ extern __typeof__(sym) name
+# define weak_symbol(sym)      _weak_pragma(name) _declare(sym,sym) 
__attribute__((__weak__))
+# include <error.h>
+#else
+# define weak_symbol(sym)
+#endif
+
 #define mount  ______mount
 
 #include <ast.h>
@@ -35,6 +49,7 @@
 #undef mount
 
 #include <fs3d.h>
+weak_symbol(fs3d_mount);
 
 int
 fs3d(register int op)
@@ -102,11 +117,18 @@ fs3d(register int op)
  * user code that includes <fs3d.h> will have mount() mapped to fs3d_mount()
  * this restricts the various "standard" mount prototype conflicts to this spot
  * this means that code that includes <fs3d.h> cannot access the real mount
- * (at least without some additional macro hackery
+ * (at least without some additional macro hackery)
  */
 
 #undef mount
-
+#if defined(__linux__) && defined(__GNUC__)
+int __attribute__((__noinline__))
+fs3d_mount(const char* source, char* target, int flags, void* data)
+{
+       errno = ENODEV;
+       return -1;
+}
+#else
 extern int     mount(const char*, char*, int, void*);
 
 int
@@ -114,3 +136,4 @@ fs3d_mount(const char* source, char* tar
 {
        return mount(source, target, flags, data);
 }
+#endif
++++++ ksh93-sfio.dif ++++++
--- src/lib/libast/include/sfio_t.h
+++ src/lib/libast/include/sfio_t.h     2013-10-11 09:22:41.000000000 +0000
@@ -34,7 +34,7 @@
 #define _SFIO_PRIVATE \
        Sfoff_t                 extent; /* current file size            */ \
        Sfoff_t                 here;   /* current physical location    */ \
-       unsigned char           unused_1;/* unused #1                   */ \
+       unsigned char           ngetr;  /* sfgetr count                 */ \
        unsigned char           tiny[1];/* for unbuffered read stream   */ \
        unsigned short          bits;   /* private flags                */ \
        unsigned int            mode;   /* current io mode              */ \
@@ -82,7 +82,7 @@
          (ssize_t)(-1),                                /* val          */ \
          (Sfoff_t)0,                                   /* extent       */ \
          (Sfoff_t)0,                                   /* here         */ \
-         0,                                            /* getr         */ \
+         0,                                            /* ngetr        */ \
          {0},                                          /* tiny         */ \
          0,                                            /* bits         */ \
          (unsigned int)(((type)&(SF_RDWR))|SF_INIT),   /* mode         */ \
@@ -93,7 +93,8 @@
          (mutex),                                      /* mutex        */ \
          (Void_t*)0,                                   /* stdio        */ \
          (Sfoff_t)0,                                   /* lpos         */ \
-         (size_t)0                                     /* iosz         */ \
+         (size_t)0,                                    /* iosz         */ \
+         0                                             /* getr         */ \
        }
 
 /* function to clear an Sfio_t structure */
@@ -110,7 +111,7 @@
          (f)->val = (ssize_t)(-1),                     /* val          */ \
          (f)->extent = (Sfoff_t)(-1),                  /* extent       */ \
          (f)->here = (Sfoff_t)0,                       /* here         */ \
-         (f)->getr = 0,                                /* getr         */ \
+         (f)->ngetr = 0,                               /* ngetr        */ \
          (f)->tiny[0] = 0,                             /* tiny         */ \
          (f)->bits = 0,                                /* bits         */ \
          (f)->mode = 0,                                /* mode         */ \
@@ -121,7 +122,8 @@
          (f)->mutex = (mtx),                           /* mutex        */ \
          (f)->stdio = (Void_t*)0,                      /* stdio        */ \
          (f)->lpos = (Sfoff_t)0,                       /* lpos         */ \
-         (f)->iosz = (size_t)0                         /* iosz         */ \
+         (f)->iosz = (size_t)0,                        /* iosz         */ \
+         (f)->getr = 0                                 /* getr         */ \
        )
 
 /* expose next stream inside discipline function; state saved in int f */
--- src/lib/libast/sfio/sfflsbuf.c
+++ src/lib/libast/sfio/sfflsbuf.c      2013-10-18 11:50:01.866235555 +0000
@@ -96,7 +96,7 @@ int   c;      /* if c>=0, c is also written out
                isall = SFISALL(f,isall);
                if((w = SFWR(f,data,n,f->disc)) > 0)
                {       if((n -= w) > 0) /* save unwritten data, then resume */
-                               memcpy((char*)f->data,(char*)data+w,n);
+                               memmove((char*)f->data,(char*)data+w,n);
                        written += w;
                        f->next = f->data+n;
                        if(c < 0 && (!isall || n == 0))
--- src/lib/libast/sfio/sfmode.c
+++ src/lib/libast/sfio/sfmode.c        2013-10-11 09:26:43.000000000 +0000
@@ -258,7 +258,7 @@ reg Sfio_t* f;      /* stream to close */
 #endif
 {
        Sfproc_t*       p;
-       int             pid, status;
+       int             status;
 
        if(!(p = f->proc))
                return -1;
@@ -279,7 +279,7 @@ reg Sfio_t* f;      /* stream to close */
                sigcritical(SIG_REG_EXEC|SIG_REG_PROC);
 #endif
                status = -1;
-               while ((pid = waitpid(p->pid,&status,0)) == -1 && errno == 
EINTR)
+               while (waitpid(p->pid,&status,0) == -1 && errno == EINTR)
                        ;
 #if _PACKAGE_ast
                status = status == -1 ?
@@ -405,12 +405,16 @@ reg int           local;  /* a local call */
        if(f->mode&SF_GETR)
        {       f->mode &= ~SF_GETR;
 #ifdef MAP_TYPE
-               if((f->bits&SF_MMAP) && (f->tiny[0] += 1) >= (4*SF_NMAP) )
-               {       /* turn off mmap to avoid page faulting */
-                       sfsetbuf(f,(Void_t*)f->tiny,(size_t)SF_UNBOUND);
-                       f->tiny[0] = 0;
+               if(f->bits&SF_MMAP)
+               {
+                       if (!++f->ngetr)
+                               f->tiny[0]++;
+                       if(((f->tiny[0]<<8)|f->ngetr) >= (4*SF_NMAP) )
+                       {       /* turn off mmap to avoid page faulting */
+                               sfsetbuf(f,(Void_t*)f->tiny,(size_t)SF_UNBOUND);
+                               f->ngetr = f->tiny[0] = 0;
+                       }
                }
-               else
 #endif
                if(f->getr)
                {       f->next[-1] = f->getr;
--- src/lib/libast/sfio/sfmove.c
+++ src/lib/libast/sfio/sfmove.c        2013-10-18 12:04:03.194735625 +0000
@@ -113,7 +113,11 @@ reg int            rc;     /* record separator */
 
                /* try reading a block of data */
                direct = 0;
-               if((r = fr->endb - (next = fr->next)) <= 0)
+               if(fr->rsrv && (r = -fr->rsrv->slen) > 0)
+               {       fr->rsrv->slen = 0;
+                       next = fr->rsrv->data;
+               }
+               else if((r = fr->endb - (next = fr->next)) <= 0)
                {       /* amount of data remained to be read */
                        if((w = n > MAX_SSIZE ? MAX_SSIZE : (ssize_t)n) < 0)
                        {       if(fr->extent < 0)
--- src/lib/libast/sfio/sfpoll.c
+++ src/lib/libast/sfio/sfpoll.c        2013-10-18 11:59:50.778735232 +0000
@@ -138,7 +138,7 @@ int         tm;     /* time in millisecs for select
                while((np = SFPOLL(fds,m,tm)) < 0 )
                {       if(errno == eintr || errno == EAGAIN)
                                errno = 0;
-                       else    break;
+                       else    goto report;
                }
                if(np > 0) /* poll succeeded */
                        np = c;
@@ -147,14 +147,14 @@ int               tm;     /* time in millisecs for select
                {       f = fa[check[r]];
 
                        if((f->flags&SF_WRITE) && !WRREADY(f) )
-                       {       if(fds[m].revents&POLLOUT)
+                       {       if(fds[m].revents&(POLLOUT|POLLHUP|POLLERR))
                                        status[check[r]] |= SF_WRITE;
                        }
 
                        if((f->flags&SF_READ)  && !RDREADY(f))
                        {       if((f->mode&SF_WRITE) && HASAUXFD(f))
                                        m += 1;
-                               if(fds[m].revents&POLLIN)
+                               if(fds[m].revents&(POLLIN|POLLHUP|POLLERR))
                                        status[check[r]] |= SF_READ;
                        }
                }
@@ -200,7 +200,7 @@ int         tm;     /* time in millisecs for select
                while((np = select(m+1,&rd,&wr,NIL(fd_set*),tmp)) < 0 )
                {       if(errno == eintr)
                                errno = 0;
-                       else    break;
+                       else    goto report;
                }
                if(np > 0)
                        np = c;
@@ -227,6 +227,7 @@ int         tm;     /* time in millisecs for select
        }
 #endif /*_lib_select*/
 
+ report:
        for(r = c = 0; c < n; ++c)
        {       if(status[c] == 0)
                        continue;
--- src/lib/libast/sfio/sfpool.c
+++ src/lib/libast/sfio/sfpool.c        2013-10-18 11:49:25.614237061 +0000
@@ -138,7 +138,7 @@ int         n;      /* current position in pool     */
                        else    /* write failed, recover buffer then quit */
                        {       if(w > 0)
                                {       v -= w;
-                                       memcpy(head->data,(head->data+w),v);
+                                       memmove(head->data,(head->data+w),v);
                                }
                                head->next = head->data+v;
                                goto done;
@@ -147,7 +147,7 @@ int         n;      /* current position in pool     */
 
                /* move data from head to f */
                if((head->data+k) != f->data )
-                       memcpy(f->data,(head->data+k),v);
+                       memmove(f->data,(head->data+k),v);
                f->next = f->data+v;
        }
 
--- 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
 #endif
                }
 
+               /* set page size, this is also the desired default buffer size 
*/
+               if(_Sfpage <= 0)
+               {
+#if _lib_getpagesize
+                       if((_Sfpage = (size_t)getpagesize()) <= 0)
+#endif
+                               _Sfpage = SF_PAGE;
+               }
+
 #if SFSETLINEMODE
                if(init)
                        f->flags |= sfsetlinemode();
@@ -308,15 +317,6 @@ size_t     size;   /* buffer size, -1 for defa
                                        (void)_sfpopen(f,-1,-1,1);
                        }
                }
-
-               /* set page size, this is also the desired default buffer size 
*/
-               if(_Sfpage <= 0)
-               {
-#if _lib_getpagesize
-                       if((_Sfpage = (size_t)getpagesize()) <= 0)
-#endif
-                               _Sfpage = SF_PAGE;
-               }
        }
 
 #ifdef MAP_TYPE
--- src/lib/libast/string/stropt.c
+++ src/lib/libast/string/stropt.c      2013-01-03 17:20:37.000000000 +0100
@@ -90,7 +90,7 @@ stropt(const char* as, const void* tab,
                        {
                                for (p = (char**)tab; t = *p; p = 
(char**)((char*)p + siz))
                                {
-                                       for (v = s; *t && *t++ == *v; v++);
+                                       for (v = s; *t && *t == *v; t++, v++);
                                        if (!*t || isspace(*v) || *v == ',' || 
*v == '=')
                                                break;
                                        if (*v == ':' && *(v + 1) == '=')
--- src/lib/libast/vmalloc/vmopen.c
+++ src/lib/libast/vmalloc/vmopen.c     2013-10-18 13:54:50.918235639 +0000
@@ -68,19 +68,22 @@ int         mode;   /* type of region               */
        Block_t         *bp, *np;
        Seg_t           *seg;
        Vmuchar_t       *addr;
-       int             rv;
+       int             rv, mt;
 
        if(!meth || !disc || !disc->memoryf )
                return NIL(Vmalloc_t*);
 
        GETPAGESIZE(_Vmpagesize);
 
+       mode = (mode&VM_FLAGS) | meth->meth; /* start with user-settable flags 
*/
+
        vmp = &vmproto; /* avoid memory allocation here! */
        memset(vmp, 0, sizeof(Vmalloc_t));
        memcpy(&vmp->meth, meth, sizeof(Vmethod_t));
+       mt = vmp->meth.meth;
+       vmp->meth.meth = 0;
        vmp->disc = disc;
 
-       mode &= VM_FLAGS; /* start with user-settable flags */
        size = 0;
 
        if(disc->exceptf)
@@ -155,6 +158,8 @@ int         mode;   /* type of region               */
                seg->free = bp;
        else    vd->wild = bp;
 
+       vmp->meth.meth = mt;
+
 done:  /* now make the region handle */
        if(vd->mode&VM_MEMORYF)
                vm = &init->vm.vm;
++++++ ksh93-uninitialized.dif ++++++
--- src/cmd/builtin/pty.c
+++ src/cmd/builtin/pty.c       2013-10-25 13:30:22.019295258 +0000
@@ -503,7 +503,7 @@ masterline(Sfio_t* mp, Sfio_t* lp, char*
        char*           t;
        ssize_t         n;
        ssize_t         a;
-       size_t          promptlen;
+       size_t          promptlen = 0;
        ptrdiff_t       d;
        char            promptbuf[64];
 
@@ -773,6 +773,8 @@ dialogue(Sfio_t* mp, Sfio_t* lp, int del
            !(master->buf = vmnewof(vm, 0, char, 2 * SF_BUFSIZE, 0)))
        {
                error(ERROR_SYSTEM|2, "out of space");
+               id = 0;
+               line = 0;
                goto done;
        }
        master->vm = vm;
--- src/cmd/ksh93/edit/edit.c
+++ src/cmd/ksh93/edit/edit.c   2013-10-25 13:30:22.020295166 +0000
@@ -1414,12 +1414,12 @@ int     ed_internal(const char *src, genchar
 int    ed_external(const genchar *src, char *dest)
 {
        register genchar wc;
-       register int c,size;
        register char *dp = dest;
        char *dpmax = dp+sizeof(genchar)*MAXLINE-2;
        if((char*)src == dp)
        {
-               char buffer[MAXLINE*sizeof(genchar)];
+               int c;
+               char buffer[MAXLINE*sizeof(genchar)] = "";
                c = ed_external(src,buffer);
 
 #ifdef _lib_wcscpy
@@ -1431,6 +1431,7 @@ int       ed_external(const genchar *src, char
        }
        while((wc = *src++) && dp<dpmax)
        {
+               ssize_t size;
                if((size = mbconv(dp, wc)) < 0)
                {
                        /* copy the character as is */
--- src/cmd/ksh93/sh/init.c
+++ src/cmd/ksh93/sh/init.c     2013-10-25 13:30:22.020295166 +0000
@@ -1264,7 +1264,7 @@ Shell_t *sh_init(register int argc,regis
        static int beenhere;
        Shell_t *shp;
        register int n;
-       int type;
+       int type = 0;
        static char *login_files[3];
        memfatal();
        n = strlen(e_version);
@@ -1943,7 +1943,7 @@ static Dt_t *inittree(Shell_t *shp,const
        register const struct shtable2 *tp;
        register unsigned n = 0;
        register Dt_t *treep;
-       Dt_t *base_treep, *dict;
+       Dt_t *base_treep, *dict = 0;
        for(tp=name_vals;*tp->sh_name;tp++)
                n++;
        np = (Namval_t*)calloc(n,sizeof(Namval_t));
--- src/cmd/ksh93/sh/macro.c
+++ src/cmd/ksh93/sh/macro.c    2013-10-25 13:30:22.021295073 +0000
@@ -1794,7 +1794,7 @@ retry2:
                register int d = (mode=='@'?' ':mp->ifs);
                regoff_t match[2*(MATCH_MAX+1)];
                int nmatch, nmatch_prev, vsize_last;
-               char *vlast;
+               char *vlast=NULL;
                while(1)
                {
                        if(!v)
--- src/cmd/ksh93/sh/name.c
+++ src/cmd/ksh93/sh/name.c     2013-10-25 13:30:22.022294981 +0000
@@ -1344,7 +1344,7 @@ Namval_t *nv_open(const char *name, Dt_t
        const char              *msg = e_varname;
        char                    *fname = 0;
        int                     offset = staktell();
-       Dt_t                    *funroot;
+       Dt_t                    *funroot = NIL(Dt_t*);
 #if NVCACHE
        struct Cache_entry      *xp;
 #endif
@@ -1820,7 +1820,7 @@ void nv_putval(register Namval_t *np, co
        else
        {
                const char *tofree=0;
-               int offset,append;
+               int offset=0,append;
 #if _lib_pathnative
                char buff[PATH_MAX];
 #endif /* _lib_pathnative */
--- src/cmd/ksh93/sh/nvdisc.c
+++ src/cmd/ksh93/sh/nvdisc.c   2013-10-25 13:30:22.022294981 +0000
@@ -449,7 +449,7 @@ static Sfdouble_t lookupn(Namval_t *np,
 char *nv_setdisc(register Namval_t* np,register const char *event,Namval_t 
*action,register Namfun_t *fp)
 {
        register struct vardisc *vp = (struct vardisc*)np->nvfun;
-       register int type;
+       register int type = -1;
        char *empty = "";
        while(vp)
        {
@@ -505,6 +505,8 @@ char *nv_setdisc(register Namval_t* np,r
                }
                return(NIL(char*));
        }
+       if (type < 0)
+               return(NIL(char*));
        /* Handle GET/SET/APPEND/UNSET disc */
        if(vp && vp->fun.disc->putval!=assign)
                vp = 0;
--- src/cmd/ksh93/sh/nvtree.c
+++ src/cmd/ksh93/sh/nvtree.c   2013-10-25 13:30:22.023294889 +0000
@@ -583,7 +583,7 @@ void nv_outnode(Namval_t *np, Sfio_t* ou
        char            *fmtq,*ep,*xp;
        Namval_t        *mp;
        Namarr_t        *ap = nv_arrayptr(np);
-       int             scan,tabs=0,c,more,associative = 0;
+       int             scan=0,tabs=0,c,more,associative = 0;
        int             saveI = Indent;
        Indent = indent;
        if(ap)
@@ -696,7 +696,7 @@ void nv_outnode(Namval_t *np, Sfio_t* ou
 
 static void outval(char *name, const char *vname, struct Walk *wp)
 {
-       register Namval_t *np, *nq, *last_table=wp->shp->last_table;
+       register Namval_t *np, *nq=0, *last_table=wp->shp->last_table;
         register Namfun_t *fp;
        int isarray=0, special=0,mode=0;
        if(*name!='.' || vname[strlen(vname)-1]==']')
--- src/cmd/ksh93/sh/nvtype.c
+++ src/cmd/ksh93/sh/nvtype.c   2013-10-25 13:30:22.023294889 +0000
@@ -854,9 +854,10 @@ void nv_newtype(Namval_t *mp)
 Namval_t *nv_mktype(Namval_t **nodes, int numnodes)
 {
        Namval_t        *mp=nodes[0], *bp=0, *np, *nq, **mnodes=nodes;
-       int             i,j,k,m,n,nd=0,nref=0,iref=0,inherit=0;
+       int             i,j,k,nd=0,nref=0,iref=0,inherit=0;
        int             size=sizeof(NV_DATA), dsize=0, nnodes;
-       size_t          offset=0;
+       size_t          offset=0,m;
+       ssize_t         n;
        char            *name=0, *cp, *sp, **help;
        Namtype_t       *pp,*qp=0,*dp,*tp;
        Dt_t            *root = nv_dict(mp);
@@ -869,6 +870,7 @@ Namval_t *nv_mktype(Namval_t **nodes, in
                _nv_unset(nodes[0],NV_RDONLY);
                errormsg(SH_DICT,ERROR_exit(1),e_badtypedef,cp);
        }
+       n=strlen(nodes[1]->nvname);
        for(nnodes=1,i=1; i <numnodes; i++)
        {
                np=nodes[i];
@@ -1100,7 +1102,6 @@ Namval_t *nv_mktype(Namval_t **nodes, in
                                nv_disc(nq, &pp->childfun.fun, NV_LAST);
                        if(tp = (Namtype_t*)nv_hasdisc(nq, &type_disc))
                                tp->strsize = -tp->strsize;
-else sfprintf(sfstderr,"tp==NULL\n");
                        for(r=0; r < dp->numnodes; r++)
                        {
                                Namval_t *nr = nv_namptr(dp->nodes,r);
--- src/cmd/ksh93/sh/parse.c
+++ src/cmd/ksh93/sh/parse.c    2013-10-25 13:30:22.024294796 +0000
@@ -301,7 +301,7 @@ static Shnode_t *getanode(Lex_t *lp, str
  */
 static Shnode_t        *makelist(Lex_t *lexp, int type, Shnode_t *l, Shnode_t 
*r)
 {
-       register Shnode_t       *t;
+       register Shnode_t       *t = NIL(Shnode_t*);
        if(!l || !r)
                sh_syntax(lexp);
        else
@@ -742,7 +742,7 @@ static Shnode_t *funct(Lex_t *lexp)
        register Shnode_t *t;
        register int flag;
        struct slnod *volatile slp=0;
-       Stak_t *savstak;
+       Stak_t *savstak = NIL(Stak_t*);
        Sfoff_t first, last;
        struct functnod *volatile fp;
        Sfio_t *iop;
@@ -815,7 +815,7 @@ static Shnode_t *funct(Lex_t *lexp)
                {
                        struct comnod   *ac;
                        char            *cp, **argv, **argv0;
-                       int             c;
+                       int             c=-1;
                        t->funct.functargs = ac = (struct 
comnod*)simple(lexp,SH_NOIO|SH_FUNDEF,NIL(struct ionod*));
                        if(ac->comset || (ac->comtyp&COMSCAN))
                                
errormsg(SH_DICT,ERROR_exit(3),e_lexsyntax4,lexp->sh->inlineno);
--- src/cmd/ksh93/sh/xec.c
+++ src/cmd/ksh93/sh/xec.c      2013-10-25 13:30:22.025294704 +0000
@@ -1507,7 +1507,7 @@ int sh_exec(register const Shnode_t *t,
                                        Namval_t node;
 #endif /* SHOPT_NAMESPACE */
                                        struct Namref   nr;
-                                       long            mode;
+                                       long            mode = 0;
                                        register struct slnod *slp;
                                        if(!np->nvalue.ip)
                                        {
@@ -1916,8 +1916,8 @@ int sh_exec(register const Shnode_t *t,
                     * don't create a new process, just
                     * save and restore io-streams
                     */
-                       pid_t   pid;
-                       int     jmpval, waitall;
+                       pid_t   pid = 0;
+                       int     jmpval, waitall = 0;
                        int     simple = 
(t->fork.forktre->tre.tretyp&COMMSK)==TCOM;
                        struct checkpt *buffp = (struct 
checkpt*)stkalloc(shp->stk,sizeof(struct checkpt));
 #if SHOPT_COSHELL
@@ -2409,7 +2409,7 @@ int sh_exec(register const Shnode_t *t,
                        Shnode_t *tt = t->wh.whtre;
 #if SHOPT_FILESCAN
                        Sfio_t *iop=0;
-                       int savein;
+                       int savein=-1;
 #endif /*SHOPT_FILESCAN*/
 #if SHOPT_OPTIMIZE
                        int  jmpval = ((struct checkpt*)shp->jmplist)->mode;
@@ -2877,7 +2877,7 @@ int sh_exec(register const Shnode_t *t,
                        else
                        {
                                register int traceon=0;
-                               register char *right;
+                               register char *right = 0;
                                register char *trap;
                                char *argv[6];
                                n = type>>TSHIFT;
@@ -2911,7 +2911,7 @@ int sh_exec(register const Shnode_t *t,
                                }
                                else if(type&TBINARY)
                                {
-                                       char *op;
+                                       char *op = 0;
                                        int pattern = 0;
                                        if(trap || traceon)
                                                op = 
(char*)(shtab_testops+(n&037)-1)->sh_name;
@@ -3376,7 +3376,7 @@ int sh_funscope(int argn, char *argv[],i
        int                     jmpval;
        volatile int            r = 0;
        int                     n;
-       char                    *savstak;
+       char                    *savstak = 0;
        struct funenv           *fp = 0;
        struct checkpt  *buffp = (struct 
checkpt*)stkalloc(shp->stk,sizeof(struct checkpt));
        Namval_t                *nspace = shp->namespace;
@@ -3492,10 +3492,10 @@ int sh_funscope(int argn, char *argv[],i
        shp->st = *prevscope;
        shp->topscope = (Shscope_t*)prevscope;
        nv_getval(sh_scoped(shp,IFSNOD));
-       if(nsig)
+       if(nsig && savstak)
                memcpy((char*)&shp->st.trapcom[0],savstak,nsig);
        shp->trapnote=0;
-       if(nsig)
+       if(nsig && savstak)
                stakset(savstak,0);
        shp->options = options;
        shp->last_root = last_root;
@@ -3584,11 +3584,11 @@ static void sh_funct(Shell_t *shp,Namval
 int sh_fun(Namval_t *np, Namval_t *nq, char *argv[])
 {
        Shell_t         *shp = sh_getinterp();
-       register int offset;
+       register int offset = 0;
        register char *base;
        Namval_t node;
        struct Namref   nr;
-       long            mode;
+       long            mode = 0;
        char            *prefix = shp->prefix;
        int n=0;
        char *av[3];
--- src/lib/libast/sfio/sfstrtof.h
+++ src/lib/libast/sfio/sfstrtof.h      2013-10-25 13:30:22.025294704 +0000
@@ -211,8 +211,8 @@ S2F_function(str, end) char* str; char**
        int                     decimal = 0;
        int                     thousand = 0;
        int                     part = 0;
-       int                     back_part;
-       S2F_batch               back_n;
+       int                     back_part = 0;
+       S2F_batch               back_n = 0;
        S2F_number              v;
        S2F_number              p;
        S2F_part_t              parts[16];
--- src/lib/libast/sfio/sftable.c
+++ src/lib/libast/sfio/sftable.c       2013-10-25 13:30:22.026294612 +0000
@@ -53,7 +53,7 @@ int           type;   /* >0: scanf, =0: printf, -1:
 #endif
 {
        int             base, fmt, flags, dot, width, precis;
-       ssize_t         n_str, size;
+       ssize_t         n_str, size = 0;
        char            *t_str, *sp;
        int             v, n, skip, dollar, decimal, thousand;
        Sffmt_t         savft;
--- src/lib/libast/sfio/sfvprintf.c
+++ src/lib/libast/sfio/sfvprintf.c     2013-10-25 13:30:22.026294612 +0000
@@ -101,7 +101,7 @@ char*       form;           /* format to use        */
 va_list        args;           /* arg list if !argf    */
 #endif
 {
-       int             n, v, w, k, n_s, base, fmt, flags;
+       int             n, v=0, w, k, n_s, base, fmt, flags;
        Sflong_t        lv;
        char            *sp, *ssp, *endsp, *ep, *endep;
        int             dot, width, precis, sign, decpt;
@@ -129,7 +129,7 @@ va_list     args;           /* arg list if !argf    */
        int             decimal = 0, thousand = 0;
 
 #if _has_multibyte
-       wchar_t*        wsp;
+       wchar_t*        wsp = 0;
        SFMBDCL(fmbs)                   /* state of format string       */
        SFMBDCL(mbs)                    /* state of some string         */
 #ifdef mbwidth
--- src/lib/libast/string/stropt.c
+++ src/lib/libast/string/stropt.c      2013-10-25 13:30:22.033293966 +0000
@@ -60,13 +60,13 @@ stropt(const char* as, const void* tab,
        register char*  v;
        register char*  t;
        char**          p;
-       char*           u;
+       char*           u = 0;
        char*           x;
        char*           e;
        int             n;
        int             ql;
        int             qr;
-       int             qc;
+       int             qc = 0;
 
        if (!as) n = 0;
        else if (!(x = s = strdup(as))) n = -1;
--- src/lib/libast/string/strtoi.h
+++ src/lib/libast/string/strtoi.h      2013-10-25 13:30:22.027294520 +0000
@@ -230,13 +230,13 @@ S2I_function(a, e, base) const char* a;
 #endif
        register S2I_unumber    n;
        register S2I_unumber    x;
-       register int            c;
+       register int            c = 0;
        register int            shift;
        register unsigned char* p;
        register unsigned char* cv;
        unsigned char*          b;
        unsigned char*          k;
-       S2I_unumber             v;
+       S2I_unumber             v = 0;
 #if S2I_multiplier
        register int            base;
 #endif
++++++ sigexec.c ++++++
--- /var/tmp/diff_new_pack.O5TqHr/_old  2013-11-07 12:53:07.000000000 +0100
+++ /var/tmp/diff_new_pack.O5TqHr/_new  2013-11-07 12:53:07.000000000 +0100
@@ -56,8 +56,16 @@
        errno = 0;
     }
     if (tcgetattr(0, &o) < 0) {
+#ifdef B115200
+       cfsetispeed(&o, B115200);
+       cfsetospeed(&o, B115200);
+#elif defined(B57600)
+       cfsetispeed(&o, B57600);
+       cfsetospeed(&o, B57600);
+#elif defined(B38400)
        cfsetispeed(&o, B38400);
        cfsetospeed(&o, B38400);
+#endif
     }
 
     o.c_iflag  = TTYDEF_IFLAG;
@@ -66,7 +74,13 @@
 # ifdef CBAUD
     o.c_lflag &= ~CBAUD;
 # endif
+#ifdef B115200
+    o.c_cflag  = B115200;
+#elif defined(B57600)
+    o.c_cflag  = B57600;
+#elif defined(B38400)
     o.c_cflag  = B38400;
+#endif
     o.c_cflag |= TTYDEF_CFLAG;
 
     /* Sane setting, allow eight bit characters, no carriage return delay

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to