git: 1a38a53924e5 - stable/13 - makefs: avoid uninitialized memory in root directory date
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 14 Apr 2023 12:52:54 UTC
The branch stable/13 has been updated by emaste:
URL: https://cgit.FreeBSD.org/src/commit/?id=1a38a53924e5b43a14bea8e87aac42176c336ff8
commit 1a38a53924e5b43a14bea8e87aac42176c336ff8
Author: Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2023-04-06 16:53:00 +0000
Commit: Ed Maste <emaste@FreeBSD.org>
CommitDate: 2023-04-14 12:10:37 +0000
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
(cherry picked from commit 7bc4ccf3aea935dde8ffc3e7c287884e22f87646)
---
usr.sbin/makefs/cd9660.c | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/usr.sbin/makefs/cd9660.c b/usr.sbin/makefs/cd9660.c
index 4159e08c8210..cf2696e578a4 100644
--- a/usr.sbin/makefs/cd9660.c
+++ b/usr.sbin/makefs/cd9660.c
@@ -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 */