@@ -81,6 +81,8 @@ char * sha1_to_hex(const unsigned char *sha1)
8181 * buf ++ = hex [val >> 4 ];
8282 * buf ++ = hex [val & 0xf ];
8383 }
84+ * buf = '\0' ;
85+
8486 return buffer ;
8587}
8688
@@ -464,7 +466,7 @@ struct packed_git *add_packed_git(char *path, int path_len, int local)
464466 p -> pack_last_used = 0 ;
465467 p -> pack_use_cnt = 0 ;
466468 p -> pack_local = local ;
467- if (!get_sha1_hex (path + path_len - 40 - 4 , sha1 ))
469+ if (( path_len > 44 ) && !get_sha1_hex (path + path_len - 44 , sha1 ))
468470 memcpy (p -> sha1 , sha1 , 20 );
469471 return p ;
470472}
@@ -1274,7 +1276,7 @@ int move_temp_to_file(const char *tmpfile, char *filename)
12741276 unlink (tmpfile );
12751277 if (ret ) {
12761278 if (ret != EEXIST ) {
1277- fprintf (stderr , "unable to write sha1 filename %s: %s" , filename , strerror (ret ));
1279+ fprintf (stderr , "unable to write sha1 filename %s: %s\n " , filename , strerror (ret ));
12781280 return -1 ;
12791281 }
12801282 /* FIXME!!! Collision check here ? */
@@ -1313,15 +1315,15 @@ int write_sha1_file(void *buf, unsigned long len, const char *type, unsigned cha
13131315 }
13141316
13151317 if (errno != ENOENT ) {
1316- fprintf (stderr , "sha1 file %s: %s" , filename , strerror (errno ));
1318+ fprintf (stderr , "sha1 file %s: %s\n " , filename , strerror (errno ));
13171319 return -1 ;
13181320 }
13191321
13201322 snprintf (tmpfile , sizeof (tmpfile ), "%s/obj_XXXXXX" , get_object_directory ());
13211323
13221324 fd = mkstemp (tmpfile );
13231325 if (fd < 0 ) {
1324- fprintf (stderr , "unable to create temporary sha1 filename %s: %s" , tmpfile , strerror (errno ));
1326+ fprintf (stderr , "unable to create temporary sha1 filename %s: %s\n " , tmpfile , strerror (errno ));
13251327 return -1 ;
13261328 }
13271329
@@ -1410,7 +1412,7 @@ int write_sha1_to_fd(int fd, const unsigned char *sha1)
14101412 size = write (fd , buf + posn , objsize - posn );
14111413 if (size <= 0 ) {
14121414 if (!size ) {
1413- fprintf (stderr , "write closed" );
1415+ fprintf (stderr , "write closed\n " );
14141416 } else {
14151417 perror ("write " );
14161418 }
0 commit comments