Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Commits on Mar 7, 2007
  1. @spearce

    Cast 64 bit off_t to 32 bit size_t

    spearce authored Junio C Hamano committed
    Some systems have sizeof(off_t) == 8 while sizeof(size_t) == 4.
    This implies that we are able to access and work on files whose
    maximum length is around 2^63-1 bytes, but we can only malloc or
    mmap somewhat less than 2^32-1 bytes of memory.
    
    On such a system an implicit conversion of off_t to size_t can cause
    the size_t to wrap, resulting in unexpected and exciting behavior.
    Right now we are working around all gcc warnings generated by the
    -Wshorten-64-to-32 option by passing the off_t through xsize_t().
    
    In the future we should make xsize_t on such problematic platforms
    detect the wrapping and die if such a file is accessed.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Something went wrong with that request. Please try again.