cvs commit: src/lib/libmd/i386 rmd160.S sha.S

Colin Percival cperciva at FreeBSD.org
Mon May 14 05:00:38 UTC 2007


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


More information about the cvs-all mailing list