From 1bce1a74011a9c4d10378be405f7f23e8cf6b69d Mon Sep 17 00:00:00 2001 From: Marius Strobl Date: Sat, 27 Jul 2013 15:28:31 +0000 Subject: [PATCH] - Set the System Identifier in the Primary Volume Descriptor to FreeBSD rather than NetBSD. - Correctly set the Expiration Time in the Primary Volume Descriptor; according to ISO 9660 8.4.26.1 unspecified date and time are denoted by the digit 0 in RBP 1 to 16 but the number 0 in RBP 17. [1] - Merge iso9660_rrip.c rev. 1.11 from NetBSD: name_len should be read as unsigned byte. [2] Note: This is according to ISO 9660 9.1.10. - Rock Ridge TF entries should use a length of 5, because after the 4 bytes of generic SUSP header there is one byte of flags. See typedef of ISO_RRIP_TF in iso9660_rrip.h. [1] Submitted by: Thomas Schmitt [1] Obtained from: NetBSD [2] MFC after: 3 days --- usr.sbin/makefs/cd9660.c | 5 +++-- usr.sbin/makefs/cd9660/iso9660_rrip.c | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/usr.sbin/makefs/cd9660.c b/usr.sbin/makefs/cd9660.c index 2b33446d055c..f0e2f3867121 100644 --- a/usr.sbin/makefs/cd9660.c +++ b/usr.sbin/makefs/cd9660.c @@ -230,7 +230,7 @@ cd9660_set_defaults(void) memset(diskStructure.primaryDescriptor.abstract_file_id, 0x20,37); memset(diskStructure.primaryDescriptor.bibliographic_file_id, 0x20,37); - strcpy(diskStructure.primaryDescriptor.system_id,"NetBSD"); + strcpy(diskStructure.primaryDescriptor.system_id, "FreeBSD"); cd9660_defaults_set = 1; @@ -681,7 +681,8 @@ cd9660_finalize_PVD(void) cd9660_set_date(diskStructure.primaryDescriptor.expiration_date, now); */ - memset(diskStructure.primaryDescriptor.expiration_date, '0' ,17); + memset(diskStructure.primaryDescriptor.expiration_date, '0', 16); + diskStructure.primaryDescriptor.expiration_date[16] = 0; cd9660_time_8426( (unsigned char *)diskStructure.primaryDescriptor.effective_date, tim); diff --git a/usr.sbin/makefs/cd9660/iso9660_rrip.c b/usr.sbin/makefs/cd9660/iso9660_rrip.c index 39e0acfe0443..40acf40c9b09 100644 --- a/usr.sbin/makefs/cd9660/iso9660_rrip.c +++ b/usr.sbin/makefs/cd9660/iso9660_rrip.c @@ -1,4 +1,4 @@ -/* $NetBSD: iso9660_rrip.c,v 1.10 2011/05/29 17:07:58 tsutsui Exp $ */ +/* $NetBSD: iso9660_rrip.c,v 1.11 2012/04/29 13:32:21 joerg Exp $ */ /* * Copyright (c) 2005 Daniel Watt, Walter Deignan, Ryan Gabrys, Alan @@ -419,9 +419,9 @@ cd9660_rrip_initialize_node(cd9660node *node, cd9660node *parent, } else if ((node->node != NULL) && ((strlen(node->node->name) != - (int)node->isoDirRecord->name_len[0]) || + (uint8_t)node->isoDirRecord->name_len[0]) || (memcmp(node->node->name,node->isoDirRecord->name, - (int) node->isoDirRecord->name_len[0]) != 0))) { + (uint8_t)node->isoDirRecord->name_len[0]) != 0))) { cd9660_rrip_NM(node); } @@ -685,7 +685,7 @@ int cd9660node_rrip_tf(struct ISO_SUSP_ATTRIBUTES *p, fsnode *_node) { p->attr.rr_entry.TF.flags[0] = TF_MODIFY | TF_ACCESS | TF_ATTRIBUTES; - p->attr.rr_entry.TF.h.length[0] = 4; + p->attr.rr_entry.TF.h.length[0] = 5; p->attr.rr_entry.TF.h.version[0] = 1; /*