diff mbox series

udf: Disallow R/W mode for disk with Metadata partition

Message ID 20200112144959.28104-1-pali.rohar@gmail.com (mailing list archive)
State New, archived
Headers show
Series udf: Disallow R/W mode for disk with Metadata partition | expand

Commit Message

Pali Rohár Jan. 12, 2020, 2:49 p.m. UTC
Currently we do not support writing to UDF disks with Metadata partition.
There is already check that disks with declared minimal write revision to
UDF 2.50 or higher are mounted only in R/O mode but this does not cover
situation when minimal write revision is set incorrectly (e.g. to 2.01).

Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
---
 fs/udf/super.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Jan Kara Jan. 13, 2020, 11:40 a.m. UTC | #1
On Sun 12-01-20 15:49:59, Pali Rohár wrote:
> Currently we do not support writing to UDF disks with Metadata partition.
> There is already check that disks with declared minimal write revision to
> UDF 2.50 or higher are mounted only in R/O mode but this does not cover
> situation when minimal write revision is set incorrectly (e.g. to 2.01).
> 
> Signed-off-by: Pali Rohár <pali.rohar@gmail.com>

Yeah, right. Better be cautious. I've added the patch to my tree.

								Honza

> ---
>  fs/udf/super.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/udf/super.c b/fs/udf/super.c
> index 8c28e93e9..3b7073c2f 100644
> --- a/fs/udf/super.c
> +++ b/fs/udf/super.c
> @@ -1063,7 +1063,8 @@ static int check_partition_desc(struct super_block *sb,
>  		goto force_ro;
>  
>  	if (map->s_partition_type == UDF_VIRTUAL_MAP15 ||
> -	    map->s_partition_type == UDF_VIRTUAL_MAP20)
> +	    map->s_partition_type == UDF_VIRTUAL_MAP20 ||
> +	    map->s_partition_type == UDF_METADATA_MAP25)
>  		goto force_ro;
>  
>  	return 0;
> -- 
> 2.20.1
>
diff mbox series

Patch

diff --git a/fs/udf/super.c b/fs/udf/super.c
index 8c28e93e9..3b7073c2f 100644
--- a/fs/udf/super.c
+++ b/fs/udf/super.c
@@ -1063,7 +1063,8 @@  static int check_partition_desc(struct super_block *sb,
 		goto force_ro;
 
 	if (map->s_partition_type == UDF_VIRTUAL_MAP15 ||
-	    map->s_partition_type == UDF_VIRTUAL_MAP20)
+	    map->s_partition_type == UDF_VIRTUAL_MAP20 ||
+	    map->s_partition_type == UDF_METADATA_MAP25)
 		goto force_ro;
 
 	return 0;