diff mbox

ACPI/APEI: fix error status check condition for CPER

Message ID 1363675687-7839-1-git-send-email-gong.chen@linux.intel.com (mailing list archive)
State Accepted, archived
Headers show

Commit Message

Chen Gong March 19, 2013, 6:48 a.m. UTC
In Table 18-289, ACPI5.0 SPEC, the error data length in CPER
Generic Error Data Entry can be 0, which means this generic
error data entry can have only one header. So fix the check
conditon for it.

Signed-off-by: Chen Gong <gong.chen@linux.intel.com>
---
 drivers/acpi/apei/cper.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Huang, Ying March 20, 2013, 1:36 a.m. UTC | #1
On Tue, 2013-03-19 at 02:48 -0400, Chen Gong wrote:
> In Table 18-289, ACPI5.0 SPEC, the error data length in CPER
> Generic Error Data Entry can be 0, which means this generic
> error data entry can have only one header. So fix the check
> conditon for it.
> 
> Signed-off-by: Chen Gong <gong.chen@linux.intel.com>

Good catch!

Reviewed-by: Huang Ying <ying.huang@intel.com>

> ---
>  drivers/acpi/apei/cper.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/acpi/apei/cper.c b/drivers/acpi/apei/cper.c
> index 1e5d8a4..fefc2ca 100644
> --- a/drivers/acpi/apei/cper.c
> +++ b/drivers/acpi/apei/cper.c
> @@ -405,7 +405,7 @@ int apei_estatus_check(const struct acpi_hest_generic_status *estatus)
>  		return rc;
>  	data_len = estatus->data_length;
>  	gdata = (struct acpi_hest_generic_data *)(estatus + 1);
> -	while (data_len > sizeof(*gdata)) {
> +	while (data_len >= sizeof(*gdata)) {
>  		gedata_len = gdata->error_data_length;
>  		if (gedata_len > data_len - sizeof(*gdata))
>  			return -EINVAL;


--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rafael Wysocki March 26, 2013, 1:35 p.m. UTC | #2
On Wednesday, March 20, 2013 09:36:56 AM Huang Ying wrote:
> On Tue, 2013-03-19 at 02:48 -0400, Chen Gong wrote:
> > In Table 18-289, ACPI5.0 SPEC, the error data length in CPER
> > Generic Error Data Entry can be 0, which means this generic
> > error data entry can have only one header. So fix the check
> > conditon for it.
> > 
> > Signed-off-by: Chen Gong <gong.chen@linux.intel.com>
> 
> Good catch!
> 
> Reviewed-by: Huang Ying <ying.huang@intel.com>

Applied.  I'm going to push it for 3.9.

Thanks,
Rafael


> > ---
> >  drivers/acpi/apei/cper.c |    2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/acpi/apei/cper.c b/drivers/acpi/apei/cper.c
> > index 1e5d8a4..fefc2ca 100644
> > --- a/drivers/acpi/apei/cper.c
> > +++ b/drivers/acpi/apei/cper.c
> > @@ -405,7 +405,7 @@ int apei_estatus_check(const struct acpi_hest_generic_status *estatus)
> >  		return rc;
> >  	data_len = estatus->data_length;
> >  	gdata = (struct acpi_hest_generic_data *)(estatus + 1);
> > -	while (data_len > sizeof(*gdata)) {
> > +	while (data_len >= sizeof(*gdata)) {
> >  		gedata_len = gdata->error_data_length;
> >  		if (gedata_len > data_len - sizeof(*gdata))
> >  			return -EINVAL;
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/acpi/apei/cper.c b/drivers/acpi/apei/cper.c
index 1e5d8a4..fefc2ca 100644
--- a/drivers/acpi/apei/cper.c
+++ b/drivers/acpi/apei/cper.c
@@ -405,7 +405,7 @@  int apei_estatus_check(const struct acpi_hest_generic_status *estatus)
 		return rc;
 	data_len = estatus->data_length;
 	gdata = (struct acpi_hest_generic_data *)(estatus + 1);
-	while (data_len > sizeof(*gdata)) {
+	while (data_len >= sizeof(*gdata)) {
 		gedata_len = gdata->error_data_length;
 		if (gedata_len > data_len - sizeof(*gdata))
 			return -EINVAL;