Fossil

View Ticket
Login
Ticket Hash: 006e1df642d6246a03dc5a3c8db122cc64fda176
Title: Error in file_tempname
Status: Fixed Type: Code_Defect
Severity: Critical Priority:
Subsystem: Resolution: Fixed
Last Modified: 2011-06-17 13:37:20
Version Found In: Check-in [48f5dadafd]
Description:
When "gdiff-command" settings is not empty, Fossil is hungup in
<verbatim>
fossil gdiff -r revision --to revision filename
</verbatim>

Error in file.c, in file_tempname function.
Piece of diff in file.c:

<verbatim>
   /* Check that the output buffer is large enough for the temporary file
@@ -653,11 +656,11 @@
     sqlite3_randomness(15, &zBuf[j]);
     for(i=0; i<15; i++, j++){
       zBuf[j] = (char)zChars[ ((unsigned char)zBuf[j])%(sizeof(zChars)-1) ];
     }
     zBuf[j] = 0;
-  }while( access(zBuf,0)==0 );
+  }while( file_size(zBuf)<0 );
 }
</verbatim>

Must be

<verbatim>
while( file_size(zBuf)>=0 );
</verbatim>