]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
Bash-4.2 patch 44
authorChet Ramey <chet.ramey@case.edu>
Thu, 7 Mar 2013 20:21:45 +0000 (15:21 -0500)
committerChet Ramey <chet.ramey@case.edu>
Thu, 7 Mar 2013 20:21:45 +0000 (15:21 -0500)
lib/glob/xmbsrtowcs.c
patchlevel.h

index 4d8c0434cd36ef8ede58ade15dc221d9561a6ed2..c410e05a560d0a5a41c4384e413545627bdf0a0d 100644 (file)
@@ -216,12 +216,24 @@ xdupmbstowcs2 (destp, src)
         It may set 'p' to NULL. */
       n = mbsnrtowcs(wsbuf+wcnum, &p, nms, wsbuf_size-wcnum, &state);
 
+      if (n == 0 && p == 0)
+       {
+         wsbuf[wcnum] = L'\0';
+         break;
+       }
+
       /* Compensate for taking single byte on wcs conversion failure above. */
       if (wcslength == 1 && (n == 0 || n == (size_t)-1))
        {
          state = tmp_state;
          p = tmp_p;
-         wsbuf[wcnum++] = *p++;
+         wsbuf[wcnum] = *p;
+         if (*p == 0)
+           break;
+         else
+           {
+             wcnum++; p++;
+           }
        }
       else
         wcnum += wcslength;
index 4c2cf1dd3096ff98284c071d67e20f72c3ed9ae2..27bb4f7f49b752f66fcd1243a7375e1528f10293 100644 (file)
@@ -25,6 +25,6 @@
    regexp `^#define[   ]*PATCHLEVEL', since that's what support/mkversion.sh
    looks for to find the patch level (for the sccs version string). */
 
-#define PATCHLEVEL 43
+#define PATCHLEVEL 44
 
 #endif /* _PATCHLEVEL_H_ */