--- multi.c.orig Mon Jun 1 20:00:25 1998 +++ multi.c Fri Oct 30 22:36:03 1998 @@ -296,7 +296,7 @@ idr = (struct iso_directory_record *) &dirbuff[i]; if(idr->length[0] == 0) { - i = (i + SECTOR_SIZE - 1) & ~(SECTOR_SIZE - 1); + i = ROUND_UP(i); continue; } (*nent)++; @@ -324,7 +324,7 @@ idr = (struct iso_directory_record *) &dirbuff[i]; if(idr->length[0] == 0) { - i = (i + SECTOR_SIZE - 1) & ~(SECTOR_SIZE - 1); + i = ROUND_UP(i); continue; } *pnt = (struct directory_entry *) e_malloc(sizeof(**rtn)); @@ -436,8 +436,9 @@ */ if( tt_extent != 0 && tt_size != 0 ) { - tt_buf = (unsigned char *) e_malloc(tt_size); - readsecs(tt_extent, tt_buf, tt_size/SECTOR_SIZE); + tt_buf = (unsigned char *) e_malloc(ROUND_UP(tt_size)); + memset(tt_buf, 0, tt_size); + readsecs(tt_extent, tt_buf, (tt_size + SECTOR_SIZE - 1) / SECTOR_SIZE); /* * Loop through the file, examine each entry, and attempt to