Date: Mon, 17 Nov 2008 12:42:42 -0500 (EST) From: "J.R. Oldroyd" <fbsd@opal.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: kern/128942: cd9660 driver to accept IEEE_P1282 and IEEE_1282 tagged images [patch] Message-ID: <200811171742.mAHHgfvj089357@vougeot.opal.com> Resent-Message-ID: <200811171750.mAHHo1jQ084519@freefall.freebsd.org>
index | next in thread | raw e-mail
>Number: 128942
>Category: kern
>Synopsis: cd9660 driver to accept IEEE_P1282 and IEEE_1282 tagged images [patch]
>Confidential: no
>Severity: serious
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Nov 17 17:50:01 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: J.R. Oldroyd
>Release: FreeBSD 7.1-PRERELEASE i386
>Organization:
>Environment:
System: FreeBSD vougeot.opal.com 7.1-PRERELEASE FreeBSD 7.1-PRERELEASE #9: Wed Oct 29 21:37:25 EDT 2008 xx@vougeot.opal.com:/usr/src/sys/i386/compile/VOUGEOT i386
>Description:
The FreeBSD cd9660 driver looks for the string "RRIP_1991A" in the Rock
Ridge Extensions Record "ER". In 1994, the Rock Ridge Interchange Protocol
standard was adopted as IEEE draft 1282 and then as IEEE standard 1282. This
added strings "IEEE_P1282" and "IEEE_1282" as acceptable values for the ER
record. The FreeBSD driver is now - ahem - 14 years behind in recognising
this. The patch below updates the driver to accept all three ER
identification strings.
A similar change already exists in the NetBSD cd9660 driver.
>How-To-Repeat:
Create an ISO image using a libisofs-based application which emits the tag
IEEE_1282 in the ER record. Mount it. Observe that no Rock Ridge info is
visible when listing files in that filesystem.
>Fix:
--- fs/cd9660/cd9660_rrip.c.orig 2007-02-11 08:54:25.000000000 -0500
+++ fs/cd9660/cd9660_rrip.c 2008-11-16 23:14:17.000000000 -0500
@@ -467,8 +467,12 @@
ISO_RRIP_EXTREF *p;
ISO_RRIP_ANALYZE *ana;
{
- if (isonum_711(p->len_id) != 10
- || bcmp((char *)p + 8,"RRIP_1991A",10)
+ if ( ! ((isonum_711(p->len_id) == 10
+ && bcmp((char *)p + 8,"RRIP_1991A",10) == 0)
+ || (isonum_711(p->len_id) == 10
+ && bcmp((char *)p + 8,"IEEE_P1282",10) == 0)
+ || (isonum_711(p->len_id) == 9
+ && bcmp((char *)p + 8,"IEEE_1282", 9) == 0))
|| isonum_711(p->version) != 1)
return 0;
ana->fields &= ~ISO_SUSP_EXTREF;
>Release-Note:
>Audit-Trail:
>Unformatted:
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200811171742.mAHHgfvj089357>
