Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 May 2007 05:00:38 +0000 (UTC)
From:      Colin Percival <cperciva@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/lib/libmd/i386 rmd160.S sha.S
Message-ID:  <200705140500.l4E50cSp082379@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
cperciva    2007-05-14 05:00:38 UTC

  FreeBSD src repository

  Modified files:
    lib/libmd/i386       rmd160.S sha.S 
  Log:
  Use unsigned comparisons.  Prior to this commit, SHA1_Update and
  RIPEMD160_Update were broken when all of the following conditions
  applied:
  (1) The platform is i386.
  (2) The program calling *_Update is statically linked to libmd.
  (3) The buffer provided to *_Update is aligned modulo 4 bytes.
  (4) The buffer extends beyond 2GB.
  
  Due to the design of this code, SHA1_Update and RIPEMD160_Update will
  still be broken if conditions (1)-(3) apply AND the buffer extends
  beyond 4GB (i.e., there is an integer overflow in computing "data + len").
  Since this remaining bug simply replaces SIGSEGV with a bogus hash (and
  non-broken programs should never provide such operands) I don't consider
  it to be a serious problem.
  
  MFC After:      1 week
  PR:             kern/102795
  
  Revision  Changes    Path
  1.4       +2 -1      src/lib/libmd/i386/rmd160.S
  1.3       +2 -1      src/lib/libmd/i386/sha.S



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200705140500.l4E50cSp082379>