Bug 821796

Summary: Upstream multibyte tests are failing on i386 architecture
Product: Red Hat Enterprise Linux 6 Reporter: Branislav Náter <bnater>
Component: tcshAssignee: Roman Kollár <rkollar>
Status: CLOSED ERRATA QA Contact: Iveta Wiedermann <isenfeld>
Severity: medium Docs Contact:
Priority: low    
Version: 6.2CC: isenfeld, ovasik, praiskup
Target Milestone: rcKeywords: Regression
Target Release: ---   
Hardware: i686   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Cause: Mistakenly removed casting when calling a function in the history locking patch. Consequence: Multibyte tests were failing. Fix: Reverted state before the patch. Result: Tests no longer fail.
Story Points: ---
Clone Of:
: 868365 (view as bug list) Environment:
Last Closed: 2013-02-21 10:44:24 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 868365    

Description Branislav Náter 2012-05-15 14:03:31 UTC
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

Comment 2 Pavel Raiskup 2012-09-24 11:03:51 UTC
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

Comment 10 errata-xmlrpc 2013-02-21 10:44:24 UTC
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