Your message dated Fri, 12 Sep 2003 16:50:14 -0400
with message-id <[EMAIL PROTECTED]>
and subject line Bug#210441: fixed in glibc 2.3.2-7
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--------------------------------------
Received: (at submit) by bugs.debian.org; 11 Sep 2003 14:42:48 +0000
>From [EMAIL PROTECTED] Thu Sep 11 09:41:48 2003
Return-path: <[EMAIL PROTECTED]>
Received: from gandalf.tausq.org (pippin.tausq.org) [64.81.244.94] 
        by master.debian.org with esmtp (Exim 3.35 1 (Debian))
        id 19xSdo-0003hd-00; Thu, 11 Sep 2003 09:41:48 -0500
Received: by pippin.tausq.org (Postfix, from userid 1000)
        id 1B503CD2FC; Thu, 11 Sep 2003 07:49:13 -0700 (PDT)
Date: Thu, 11 Sep 2003 07:49:13 -0700
From: Randolph Chung <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Subject: [patch/ia64] memccpy segfault fix
Message-ID: <[EMAIL PROTECTED]>
Reply-To: Randolph Chung <[EMAIL PROTECTED]>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
X-PGP: for PGP key, see http://www.tausq.org/pgp.txt
X-GPG: for GPG key, see http://www.tausq.org/gpg.txt
User-Agent: Mutt/1.5.3i
Delivered-To: [EMAIL PROTECTED]
X-Spam-Status: No, hits=-13.3 required=4.0
        tests=HAS_PACKAGE,PATCH_UNIFIED_DIFF,USER_AGENT_MUTT
        autolearn=ham version=2.53-bugs.debian.org_2003_8_27
X-Spam-Level: 
X-Spam-Checker-Version: SpamAssassin 2.53-bugs.debian.org_2003_8_27 
(1.174.2.15-2003-03-30-exp)

Package: glibc
Version: 2.3.2
Severity: important
Tags: patch

See 
http://sources.redhat.com/ml/libc-hacker/2003-09/msg00033.html
for details.  Please either apply this, or take it from cvs.

tnx
randolph

#! /bin/sh -e

# All lines beginning with `# DP:' are a description of the patch.
# DP: Description: memccpy segfault fix
# DP: Author: Jes Sorenson <[EMAIL PROTECTED]>
# DP: Upstream status: in cvs
# DP: Status Details: Posted to debian-ia64 and libc-hacker mailing list
# DP: Date: Tue, 09 Sep 2003 08:19:17 -0700

if [ $# -ne 2 ]; then
    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
    exit 1
fi
case "$1" in
    -patch) patch -d "$2" -f --no-backup-if-mismatch -p0 < $0;;
    -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p0 < $0;;
    *)
        echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
        exit 1
esac
exit 0

# append the patch here and adjust the -p? flag in the patch calls.
2003-04-11  Jes Sorensen  <[EMAIL PROTECTED]>

        * sysdeps/ia64/memccpy.S: When recovering for src_aligned and the
        character is found during recovery, use correct register when
        determining the position of the found character.
        
2003-04-01  Jes Sorensen  <[EMAIL PROTECTED]>

        * sysdeps/ia64/memccpy.S: Use speculatively loads for readahead to
        avoid segfaults when reading from unmapped pages. For aligned
        reload and continue, for misaligned, roll back and use byte copy.
        Save ar.ec on entry and restore on exit.

Index: sysdeps/ia64/memccpy.S
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/ia64/memccpy.S,v
retrieving revision 1.5
diff -u -r1.5 memccpy.S
--- sysdeps/ia64/memccpy.S      6 Jul 2001 04:55:54 -0000       1.5
+++ sysdeps/ia64/memccpy.S      9 Sep 2003 14:15:32 -0000
@@ -1,6 +1,6 @@
 /* Optimized version of the memccpy() function.
    This file is part of the GNU C Library.
-   Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc.
    Contributed by Dan Pop <[EMAIL PROTECTED]>.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -46,6 +46,7 @@
 #define tmp            r23
 #define char           r24
 #define charx8         r25
+#define saved_ec       r26
 #define sh2            r28
 #define        sh1             r29
 #define loopcnt                r30
@@ -56,25 +57,27 @@
        alloc   r2 = ar.pfs, 4, 40 - 4, 0, 40
 
 #include "softpipe.h"
-       .rotr   r[MEMLAT + 3], tmp1[4], tmp2[4], val[4], tmp3[2], pos0[2]
+       .rotr   r[MEMLAT + 7], tmp1[4], tmp2[4], val[4], tmp3[2], pos0[2]
        .rotp   p[MEMLAT + 6 + 1]
 
        mov     ret0 = r0               // return NULL if no match
        .save pr, saved_pr
        mov     saved_pr = pr           // save the predicate registers
+       mov     dest = in0              // dest
        .save ar.lc, saved_lc
         mov    saved_lc = ar.lc        // save the loop counter
+        mov    saved_ec = ar.ec        // save the loop counter
        .body
-       mov     dest = in0              // dest
        mov     src = in1               // src
        extr.u  char = in2, 0, 8        // char
        mov     len = in3               // len
        sub     tmp = r0, in0           // tmp = -dest
        cmp.ne  p7, p0 = r0, r0         // clear p7
        ;;
-       and     loopcnt = 7, tmp                // loopcnt = -dest % 8
+       and     loopcnt = 7, tmp        // loopcnt = -dest % 8
        cmp.ge  p6, p0 = OP_T_THRES, len        // is len <= OP_T_THRES
-(p6)   br.cond.spnt    .cpyfew                 // copy byte by byte
+       mov     ar.ec = 0               // ec not guaranteed zero on entry
+(p6)   br.cond.spnt    .cpyfew         // copy byte by byte
        ;;
        cmp.eq  p6, p0 = loopcnt, r0
        mux1    charx8 = char, @brcst
@@ -109,26 +112,31 @@
        cmp.ne  p6, p0 = r0, r0 ;;      // clear p6
        .align  32
 .l2:
-(p[0])         ld8     r[0] = [asrc], 8                // r[0] = w1
+(p[0])         ld8.s   r[0] = [asrc], 8                // r[0] = w1
 (p[MEMLAT])    shr.u   tmp1[0] = r[1 + MEMLAT], sh1    // tmp1 = w0 >> sh1
 (p[MEMLAT])    shl     tmp2[0] = r[0 + MEMLAT], sh2    // tmp2 = w1 << sh2
 (p[MEMLAT+4])  xor     tmp3[0] = val[1], charx8
 (p[MEMLAT+5])  czx1.r  pos0[0] = tmp3[1]
+(p[MEMLAT+6])  chk.s   r[6 + MEMLAT], .recovery1       // our data isn't
+                                                       // valid - rollback!
 (p[MEMLAT+6])  cmp.ne  p6, p0 = 8, pos0[1]
 (p6)           br.cond.spnt    .gotit
 (p[MEMLAT+6])  st8     [dest] = val[3], 8              // store val to dest
 (p[MEMLAT+3])  or      val[0] = tmp1[3], tmp2[3]       // val = tmp1 | tmp2
                br.ctop.sptk    .l2
                br.cond.sptk .cpyfew
+
 .src_aligned:
                cmp.ne  p6, p0 = r0, r0                 // clear p6
                mov     ar.ec = MEMLAT + 2 + 1 ;;       // set EC
 .l3:
-(p[0])         ld8     r[0] = [src], 8
+(p[0])         ld8.s   r[0] = [src], 8
 (p[MEMLAT])    xor     tmp3[0] = r[MEMLAT], charx8
 (p[MEMLAT+1])  czx1.r  pos0[0] = tmp3[1]
 (p[MEMLAT+2])  cmp.ne  p7, p0 = 8, pos0[1]
+(p[MEMLAT+2])  chk.s   r[MEMLAT+2], .recovery2
 (p7)           br.cond.spnt    .gotit
+.back2:
 (p[MEMLAT+2])  st8     [dest] = r[MEMLAT+2], 8
                br.ctop.dptk .l3
 .cpyfew:
@@ -148,6 +156,7 @@
 .restore_and_exit:
        mov     pr = saved_pr, -1       // restore the predicate registers
        mov     ar.lc = saved_lc        // restore the loop counter
+       mov     ar.ec = saved_ec ;;     // restore the epilog counter
        br.ret.sptk.many b0
 .gotit:
        .pred.rel "mutex" p6, p7
@@ -163,4 +172,33 @@
        mov     pr = saved_pr, -1
        mov     ar.lc = saved_lc
        br.ret.sptk.many b0
+
+.recovery1:
+       adds    src = -(MEMLAT + 6 + 1) * 8, asrc
+       mov     loopcnt = ar.lc
+       mov     tmp = ar.ec ;;
+       sub     sh1 = (MEMLAT + 6 + 1), tmp
+       shr.u   sh2 = sh2, 3
+       ;; 
+       shl     loopcnt = loopcnt, 3
+       sub     src = src, sh2
+       shl     sh1 = sh1, 3
+       shl     tmp = tmp, 3
+       ;;
+       add     len = len, loopcnt
+       add     src = sh1, src ;;
+       add     len = tmp, len
+.back1:
+       br.cond.sptk .cpyfew
+
+.recovery2:
+       add     tmp = -(MEMLAT + 3) * 8, src
+(p7)   br.cond.spnt .gotit
+       ;;
+       ld8     r[MEMLAT+2] = [tmp] ;;
+       xor     pos0[1] = r[MEMLAT+2], charx8 ;;
+       czx1.r  pos0[1] = pos0[1] ;;
+       cmp.ne  p7, p6 = 8, pos0[1]
+(p7)   br.cond.spnt .gotit
+       br.cond.sptk .back2
 END(memccpy)

---------------------------------------
Received: (at 210441-close) by bugs.debian.org; 12 Sep 2003 20:53:57 +0000
>From [EMAIL PROTECTED] Fri Sep 12 15:53:56 2003
Return-path: <[EMAIL PROTECTED]>
Received: from auric.debian.org [206.246.226.45] 
        by master.debian.org with esmtp (Exim 3.35 1 (Debian))
        id 19xuvU-0005IT-00; Fri, 12 Sep 2003 15:53:56 -0500
Received: from katie by auric.debian.org with local (Exim 3.35 1 (Debian))
        id 19xuru-0000ZQ-00; Fri, 12 Sep 2003 16:50:14 -0400
From: Daniel Jacobowitz <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
X-Katie: $Revision: 1.35 $
Subject: Bug#210441: fixed in glibc 2.3.2-7
Message-Id: <[EMAIL PROTECTED]>
Sender: Archive Administrator <[EMAIL PROTECTED]>
Date: Fri, 12 Sep 2003 16:50:14 -0400
Delivered-To: [EMAIL PROTECTED]

Source: glibc
Source-Version: 2.3.2-7

We believe that the bug you reported is fixed in the latest version of
glibc, which is due to be installed in the Debian FTP archive:

glibc-doc_2.3.2-7_all.deb
  to pool/main/g/glibc/glibc-doc_2.3.2-7_all.deb
glibc_2.3.2-7.diff.gz
  to pool/main/g/glibc/glibc_2.3.2-7.diff.gz
glibc_2.3.2-7.dsc
  to pool/main/g/glibc/glibc_2.3.2-7.dsc
libc-udeb_2.3.2-7_i386.udeb
  to pool/main/g/glibc/libc-udeb_2.3.2-7_i386.udeb
libc6-dbg_2.3.2-7_i386.deb
  to pool/main/g/glibc/libc6-dbg_2.3.2-7_i386.deb
libc6-dev_2.3.2-7_i386.deb
  to pool/main/g/glibc/libc6-dev_2.3.2-7_i386.deb
libc6-pic_2.3.2-7_i386.deb
  to pool/main/g/glibc/libc6-pic_2.3.2-7_i386.deb
libc6-prof_2.3.2-7_i386.deb
  to pool/main/g/glibc/libc6-prof_2.3.2-7_i386.deb
libc6_2.3.2-7_i386.deb
  to pool/main/g/glibc/libc6_2.3.2-7_i386.deb
locales_2.3.2-7_all.deb
  to pool/main/g/glibc/locales_2.3.2-7_all.deb
nscd_2.3.2-7_i386.deb
  to pool/main/g/glibc/nscd_2.3.2-7_i386.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [EMAIL PROTECTED],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Daniel Jacobowitz <[EMAIL PROTECTED]> (supplier of updated glibc package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [EMAIL PROTECTED])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.7
Date: Fri, 12 Sep 2003 14:56:19 -0400
Source: glibc
Binary: libc6.1-prof libc1 libc0.3-pic locales glibc-doc libc6-pic libc-udeb 
libc1-prof libc0.3 libc0.3-dbg libc6.1-dev libc1-pic libc6-s390x libc6-prof libc1-dbg 
libc6-dev-sparc64 libc6 libc0.3-dev libc6-dbg nscd libc6.1-dbg libc6.1-pic 
libc6-sparc64 libc6-dev libc0.3-prof libc6.1 libc6-dev-s390x libc1-dev
Architecture: source i386 all
Version: 2.3.2-7
Distribution: unstable
Urgency: medium
Maintainer: GNU Libc Maintainers <[EMAIL PROTECTED]>
Changed-By: Daniel Jacobowitz <[EMAIL PROTECTED]>
Description: 
 glibc-doc  - GNU C Library: Documentation
 libc-udeb  - GNU C Library: Shared libraries and Timezone data - udeb (udeb)
 libc6      - GNU C Library: Shared libraries and Timezone data
 libc6-dbg  - GNU C Library: Libraries with debugging symbols
 libc6-dev  - GNU C Library: Development Libraries and Header Files.
 libc6-pic  - GNU C Library: PIC archive library
 libc6-prof - GNU C Library: Profiling Libraries.
 locales    - GNU C Library: National Language (locale) data [support]
 nscd       - GNU C Library: Name Service Cache Daemon
Closes: 207221 208016 210347 210441
Changes: 
 glibc (2.3.2-7) unstable; urgency=medium
 .
   * GOTO Masanori  <[EMAIL PROTECTED]>
 .
     - debian/patches/90_glibc232-mathinline_iso.dpatch: Fix inline math
       function complaints with gcc -pedantic -ffast-math.  Patched by
       Thomas Richter <[EMAIL PROTECTED]>.  (Closes: #208016, #207221)
 .
     - debian/patches/template.dpatch: Added DP: Related bugs: field.  You can
       use it to put which bugs are related with this dpatch.
 .
   * Daniel Jacobowitz <[EMAIL PROTECTED]>
 .
     - debian/control.in/main: Update binutils dependency for !s390.
 .
     - debian/patches/linuxthreads-push-pop.dpatch: Add __libc_cleanup_push
       and __libc_cleanup_pop.
     - debian/patches/syslog-backrev.dpatch: Remove, no longer necessary.
       This should fix the crashes in syslog without libpthread loaded.
 .
     - debian/patches/linuxthreads-jumptable-wine.dpatch: Move
       pthread_cond_timedwait out of the way, so that it doesn't break
       the way Wine pokes into this structure (Closes: #210347).
 .
     - debian/patches/ia64-memccpy.patch: Fix a segfault on ia64
       (Closes: #210441).
Files: 
 2b2a08b48ea63cb4aa2a9d8084178acc 1678 libs required glibc_2.3.2-7.dsc
 7ce50128fa97b14c58399da2ee40455b 1171658 libs required glibc_2.3.2-7.diff.gz
 18d0f9e3a50e973daf725c00d6f06f07 3717170 base required libc6_2.3.2-7_i386.deb
 831b5efc810dc337a5ab81f2781a60cf 1064978 debian-installer required 
libc-udeb_2.3.2-7_i386.udeb
 bbea83d11840c1f3f85292f88f5467ab 2558188 libdevel standard libc6-dev_2.3.2-7_i386.deb
 a9a086791d16eade7d2deadf2dd8eecf 1026678 libdevel extra libc6-prof_2.3.2-7_i386.deb
 e35a84cc38182e10b9eb985a3c2bcc1c 8510842 libdevel extra libc6-dbg_2.3.2-7_i386.deb
 84a5a864b4af71bf8fb3ca0f9b8575cc 996826 libdevel optional libc6-pic_2.3.2-7_i386.deb
 e1aa27151356c0606507fc7f12eb9805 77616 admin optional nscd_2.3.2-7_i386.deb
 c98be6681e0c9ef2d3a6cfbcac7eb007 3799498 base standard locales_2.3.2-7_all.deb
 6a9aa6a2c6adb642cef2ca8fe3966948 3705038 doc optional glibc-doc_2.3.2-7_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQE/Yi3ObgOPXuCjg3cRAl1aAJ9OzSj3N8Egt04gHvY4UDHpOAflrgCgu5lF
VvX23R/Z2+XXtX4xmjIUysc=
=5p1u
-----END PGP SIGNATURE-----


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to