makefs: avoid uninitialized memory in root directory date

Move date setting into cd9660_populate_iso_dir_record so there is no
path that leaves it unset.

PR:		203531
Reported by:	Thomas Schmitt <scdbackup@gmx.net>
Reviewed by:	markj
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D39258
This commit is contained in:
Ed Maste 2023-04-06 12:53:00 -04:00
parent 04b4655997
commit 7bc4ccf3ae

View File

@ -727,7 +727,10 @@ cd9660_populate_iso_dir_record(struct _iso_directory_record_cd9660 *record,
u_char ext_attr_length, u_char flags,
u_char name_len, const char * name)
{
time_t tstamp = stampst.st_ino ? stampst.st_mtime : time(NULL);
record->ext_attr_length[0] = ext_attr_length;
cd9660_time_915(record->date, tstamp);
record->flags[0] = ISO_FLAG_CLEAR | flags;
record->file_unit_size[0] = 0;
record->interleave[0] = 0;
@ -814,7 +817,6 @@ cd9660_fill_extended_attribute_record(cd9660node *node)
static int
cd9660_translate_node_common(iso9660_disk *diskStructure, cd9660node *newnode)
{
time_t tstamp = stampst.st_ino ? stampst.st_mtime : time(NULL);
u_char flag;
char temp[ISO_FILENAME_MAXLENGTH_WITH_PADDING];
@ -831,12 +833,6 @@ cd9660_translate_node_common(iso9660_disk *diskStructure, cd9660node *newnode)
cd9660_populate_iso_dir_record(newnode->isoDirRecord, 0,
flag, strlen(temp), temp);
/* Set the various dates */
/* If we want to use the current date and time */
cd9660_time_915(newnode->isoDirRecord->date, tstamp);
cd9660_bothendian_dword(newnode->fileDataLength,
newnode->isoDirRecord->size);
/* If the file is a link, we want to set the size to 0 */