Description of problem: Multibyte tests from tcsh upsream suite are failing on i386 architecture. Version-Release number of selected component (if applicable): tcsh-6.17-19.el6_2 How reproducible: always on i386 architecture Steps to Reproduce: 1. run upsream test suite (/CoreOS/tcsh/Sanity/upstream) Actual results: 121: EUC-JP multibyte test FAILED (mb-eucjp.at:90) 122: UTF-8 multibyte test FAILED (mb-utf8.at:90) Expected results: 121: EUC-JP multibyte test ok 122: UTF-8 multibyte test ok
This seems like like working fix: diff --git history-file-locking.patch history-file-locking.patch index 7e8b02f..b6db21e 100644 --- a/tcsh-6.17.00-history-file-locking.patch +++ b/tcsh-6.17.00-history-file-locking.patch @@ -417,7 +417,7 @@ index 536097e..2543552 100644 stream is not seekable */ err = errno; - lseek(fildes, -(off_t)partial, L_INCR); -+ lseek(fildes, -partial, SEEK_CUR); ++ lseek(fildes, -(off_t)partial, SEEK_CUR); errno = err; return res != 0 ? res : r; } There was probably mistakenly removed (off_t) retype expression in history-file-locking patch. Another problem with this patch was found by Coverity (use after free): diff --git a/sh.c b/sh.c index 5fdffb4..7ed1f8d 100644 --- a/sh.c +++ b/sh.c @@ -2095,7 +2095,7 @@ dosource_flg(Char **t, struct command *c, int flg) t = glob_all_or_error(t); fd = srcfile(file, 0, (hflg | flg), t); if ((!fd) && (!hflg) && (!bequiet)) - stderror(ERR_SYSTEM, f, strerror(errno)); + stderror(ERR_SYSTEM, fd, strerror(errno)); /* We need to preserve fd and it's cleaning routines on the top of the * cleaning stack. Don't call cleanup_until() but clean it manually. */ Pavel
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2013-0446.html