Patchwork parted: fix several integer overflows

login
register
mail settings
Submitter Ming Liu
Date Feb. 25, 2013, 5:03 a.m.
Message ID <1361768629-6911-1-git-send-email-ming.liu@windriver.com>
Download mbox | patch
Permalink /patch/45023/
State New
Headers show

Comments

Ming Liu - Feb. 25, 2013, 5:03 a.m.
Integer overflows was found in libparted/labels/dvh.c, while attemptting
assign unsigned int values to int types in some places. These overflows
only can be observed on BE platforms like MIPS, when the "WORDS_BIGENDIAN"
macro is defined in parted.

Defined by unsigned int instead.

Signed-off-by: Ming Liu <ming.liu@windriver.com>
---
 .../parted/parted-3.1/fix-dvh-overflows.patch      | 34 ++++++++++++++++++++++
 meta/recipes-extended/parted/parted_3.1.bb         |  5 ++--
 2 files changed, 37 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-extended/parted/parted-3.1/fix-dvh-overflows.patch
Saul Wold - Feb. 25, 2013, 11:55 p.m.
On 02/24/2013 09:03 PM, Ming Liu wrote:
> Integer overflows was found in libparted/labels/dvh.c, while attemptting
> assign unsigned int values to int types in some places. These overflows
> only can be observed on BE platforms like MIPS, when the "WORDS_BIGENDIAN"
> macro is defined in parted.
>
> Defined by unsigned int instead.
>
> Signed-off-by: Ming Liu <ming.liu@windriver.com>
> ---
>   .../parted/parted-3.1/fix-dvh-overflows.patch      | 34 ++++++++++++++++++++++
>   meta/recipes-extended/parted/parted_3.1.bb         |  5 ++--
>   2 files changed, 37 insertions(+), 2 deletions(-)
>   create mode 100644 meta/recipes-extended/parted/parted-3.1/fix-dvh-overflows.patch
>
> diff --git a/meta/recipes-extended/parted/parted-3.1/fix-dvh-overflows.patch b/meta/recipes-extended/parted/parted-3.1/fix-dvh-overflows.patch
> new file mode 100644
> index 0000000..0768642
> --- /dev/null
> +++ b/meta/recipes-extended/parted/parted-3.1/fix-dvh-overflows.patch
> @@ -0,0 +1,34 @@
> +Upstream-Status: Pending
> +
Please add Signed-off-by: to the patch also.

Thanks
	Sau!

> +---
> + dvh.h |   10 +++++-----
> + 1 file changed, 5 insertions(+), 5 deletions(-)
> +
> +Index: parted-3.1/libparted/labels/dvh.h
> +===================================================================
> +--- parted-3.1.orig/libparted/labels/dvh.h	2013-02-25 10:46:13.204477586 +0800
> ++++ parted-3.1/libparted/labels/dvh.h	2013-02-25 10:47:20.954477065 +0800
> +@@ -112,8 +112,8 @@ struct device_parameters {
> +
> + struct volume_directory {
> + 	char	vd_name[VDNAMESIZE];	/* name */
> +-	int	vd_lbn;			/* logical block number */
> +-	int	vd_nbytes;		/* file length in bytes */
> ++	unsigned int	vd_lbn;		/* logical block number */
> ++	unsigned int	vd_nbytes;	/* file length in bytes */
> + };
> +
> + /*
> +@@ -125,9 +125,9 @@ struct volume_directory {
> +  * NOTE: pt_firstlbn SHOULD BE CYLINDER ALIGNED
> +  */
> + struct partition_table {		/* one per logical partition */
> +-	int	pt_nblks;		/* # of logical blks in partition */
> +-	int	pt_firstlbn;		/* first lbn of partition */
> +-	int	pt_type;		/* use of partition */
> ++	unsigned int	pt_nblks;	/* # of logical blks in partition */
> ++	unsigned int	pt_firstlbn;	/* first lbn of partition */
> ++	int		pt_type;	/* use of partition */
> + };
> +
> + #define	PTYPE_VOLHDR	0		/* partition is volume header */
> diff --git a/meta/recipes-extended/parted/parted_3.1.bb b/meta/recipes-extended/parted/parted_3.1.bb
> index 21d3a66..079b295 100644
> --- a/meta/recipes-extended/parted/parted_3.1.bb
> +++ b/meta/recipes-extended/parted/parted_3.1.bb
> @@ -4,13 +4,14 @@ LICENSE = "GPLv3+"
>   LIC_FILES_CHKSUM = "file://COPYING;md5=2f31b266d3440dd7ee50f92cf67d8e6c"
>   SECTION = "console/tools"
>   DEPENDS = "ncurses readline util-linux"
> -PR = "r0"
> +PR = "r1"
>
>   SRC_URI = "${GNU_MIRROR}/parted/parted-${PV}.tar.xz \
>              file://no_check.patch \
>              file://syscalls.patch \
>              file://fix-git-version-gen.patch \
> -           file://fix-doc-mandir.patch"
> +           file://fix-doc-mandir.patch \
> +           file://fix-dvh-overflows.patch"
>
>   SRC_URI[md5sum] = "5d89d64d94bcfefa9ce8f59f4b81bdcb"
>   SRC_URI[sha256sum] = "5e9cc1f91eaf016e5033d85b9b893fd6d3ffaca532a48de1082df9b94225ca15"
>
Ming Liu - Feb. 26, 2013, 12:55 a.m.
On 02/26/2013 07:55 AM, Saul Wold wrote:
> On 02/24/2013 09:03 PM, Ming Liu wrote:
>> Integer overflows was found in libparted/labels/dvh.c, while attemptting
>> assign unsigned int values to int types in some places. These overflows
>> only can be observed on BE platforms like MIPS, when the 
>> "WORDS_BIGENDIAN"
>> macro is defined in parted.
>>
>> Defined by unsigned int instead.
>>
>> Signed-off-by: Ming Liu <ming.liu@windriver.com>
>> ---
>>   .../parted/parted-3.1/fix-dvh-overflows.patch      | 34 
>> ++++++++++++++++++++++
>>   meta/recipes-extended/parted/parted_3.1.bb         |  5 ++--
>>   2 files changed, 37 insertions(+), 2 deletions(-)
>>   create mode 100644 
>> meta/recipes-extended/parted/parted-3.1/fix-dvh-overflows.patch
>>
>> diff --git 
>> a/meta/recipes-extended/parted/parted-3.1/fix-dvh-overflows.patch 
>> b/meta/recipes-extended/parted/parted-3.1/fix-dvh-overflows.patch
>> new file mode 100644
>> index 0000000..0768642
>> --- /dev/null
>> +++ b/meta/recipes-extended/parted/parted-3.1/fix-dvh-overflows.patch
>> @@ -0,0 +1,34 @@
>> +Upstream-Status: Pending
>> +
> Please add Signed-off-by: to the patch also.

OK, got it. I will send V1.

the best,
thank you

>
> Thanks
>     Sau!
>
>> +---
>> + dvh.h |   10 +++++-----
>> + 1 file changed, 5 insertions(+), 5 deletions(-)
>> +
>> +Index: parted-3.1/libparted/labels/dvh.h
>> +===================================================================
>> +--- parted-3.1.orig/libparted/labels/dvh.h    2013-02-25 
>> 10:46:13.204477586 +0800
>> ++++ parted-3.1/libparted/labels/dvh.h    2013-02-25 
>> 10:47:20.954477065 +0800
>> +@@ -112,8 +112,8 @@ struct device_parameters {
>> +
>> + struct volume_directory {
>> +     char    vd_name[VDNAMESIZE];    /* name */
>> +-    int    vd_lbn;            /* logical block number */
>> +-    int    vd_nbytes;        /* file length in bytes */
>> ++    unsigned int    vd_lbn;        /* logical block number */
>> ++    unsigned int    vd_nbytes;    /* file length in bytes */
>> + };
>> +
>> + /*
>> +@@ -125,9 +125,9 @@ struct volume_directory {
>> +  * NOTE: pt_firstlbn SHOULD BE CYLINDER ALIGNED
>> +  */
>> + struct partition_table {        /* one per logical partition */
>> +-    int    pt_nblks;        /* # of logical blks in partition */
>> +-    int    pt_firstlbn;        /* first lbn of partition */
>> +-    int    pt_type;        /* use of partition */
>> ++    unsigned int    pt_nblks;    /* # of logical blks in partition */
>> ++    unsigned int    pt_firstlbn;    /* first lbn of partition */
>> ++    int        pt_type;    /* use of partition */
>> + };
>> +
>> + #define    PTYPE_VOLHDR    0        /* partition is volume header */
>> diff --git a/meta/recipes-extended/parted/parted_3.1.bb 
>> b/meta/recipes-extended/parted/parted_3.1.bb
>> index 21d3a66..079b295 100644
>> --- a/meta/recipes-extended/parted/parted_3.1.bb
>> +++ b/meta/recipes-extended/parted/parted_3.1.bb
>> @@ -4,13 +4,14 @@ LICENSE = "GPLv3+"
>>   LIC_FILES_CHKSUM = 
>> "file://COPYING;md5=2f31b266d3440dd7ee50f92cf67d8e6c"
>>   SECTION = "console/tools"
>>   DEPENDS = "ncurses readline util-linux"
>> -PR = "r0"
>> +PR = "r1"
>>
>>   SRC_URI = "${GNU_MIRROR}/parted/parted-${PV}.tar.xz \
>>              file://no_check.patch \
>>              file://syscalls.patch \
>>              file://fix-git-version-gen.patch \
>> -           file://fix-doc-mandir.patch"
>> +           file://fix-doc-mandir.patch \
>> +           file://fix-dvh-overflows.patch"
>>
>>   SRC_URI[md5sum] = "5d89d64d94bcfefa9ce8f59f4b81bdcb"
>>   SRC_URI[sha256sum] = 
>> "5e9cc1f91eaf016e5033d85b9b893fd6d3ffaca532a48de1082df9b94225ca15"
>>
>
>

Patch

diff --git a/meta/recipes-extended/parted/parted-3.1/fix-dvh-overflows.patch b/meta/recipes-extended/parted/parted-3.1/fix-dvh-overflows.patch
new file mode 100644
index 0000000..0768642
--- /dev/null
+++ b/meta/recipes-extended/parted/parted-3.1/fix-dvh-overflows.patch
@@ -0,0 +1,34 @@ 
+Upstream-Status: Pending
+
+---
+ dvh.h |   10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+Index: parted-3.1/libparted/labels/dvh.h
+===================================================================
+--- parted-3.1.orig/libparted/labels/dvh.h	2013-02-25 10:46:13.204477586 +0800
++++ parted-3.1/libparted/labels/dvh.h	2013-02-25 10:47:20.954477065 +0800
+@@ -112,8 +112,8 @@ struct device_parameters {
+ 
+ struct volume_directory {
+ 	char	vd_name[VDNAMESIZE];	/* name */
+-	int	vd_lbn;			/* logical block number */
+-	int	vd_nbytes;		/* file length in bytes */
++	unsigned int	vd_lbn;		/* logical block number */
++	unsigned int	vd_nbytes;	/* file length in bytes */
+ };
+ 
+ /*
+@@ -125,9 +125,9 @@ struct volume_directory {
+  * NOTE: pt_firstlbn SHOULD BE CYLINDER ALIGNED
+  */
+ struct partition_table {		/* one per logical partition */
+-	int	pt_nblks;		/* # of logical blks in partition */
+-	int	pt_firstlbn;		/* first lbn of partition */
+-	int	pt_type;		/* use of partition */
++	unsigned int	pt_nblks;	/* # of logical blks in partition */
++	unsigned int	pt_firstlbn;	/* first lbn of partition */
++	int		pt_type;	/* use of partition */
+ };
+ 
+ #define	PTYPE_VOLHDR	0		/* partition is volume header */
diff --git a/meta/recipes-extended/parted/parted_3.1.bb b/meta/recipes-extended/parted/parted_3.1.bb
index 21d3a66..079b295 100644
--- a/meta/recipes-extended/parted/parted_3.1.bb
+++ b/meta/recipes-extended/parted/parted_3.1.bb
@@ -4,13 +4,14 @@  LICENSE = "GPLv3+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=2f31b266d3440dd7ee50f92cf67d8e6c"
 SECTION = "console/tools"
 DEPENDS = "ncurses readline util-linux"
-PR = "r0"
+PR = "r1"
 
 SRC_URI = "${GNU_MIRROR}/parted/parted-${PV}.tar.xz \
            file://no_check.patch \
            file://syscalls.patch \
            file://fix-git-version-gen.patch \
-           file://fix-doc-mandir.patch"
+           file://fix-doc-mandir.patch \
+           file://fix-dvh-overflows.patch"
 
 SRC_URI[md5sum] = "5d89d64d94bcfefa9ce8f59f4b81bdcb"
 SRC_URI[sha256sum] = "5e9cc1f91eaf016e5033d85b9b893fd6d3ffaca532a48de1082df9b94225ca15"