Re: [PATCH 1/2] staging: rtl8192e: Pass array value to memcpy instead of struct pointer
On Sat, Feb 20, 2021 at 12:34:15PM -0600, Gustavo A. R. Silva wrote: > > > On 2/20/21 12:21, Atul Gopinathan wrote: > > The variable "info_element" is of the following type: > > struct rtllib_info_element *info_element > > > > rtllib_info_element is a struct containing the following fields as > > defined in drivers/staging/rtl8192e/rtllib.h: > > > > struct rtllib_info_element { > > u8 id; > > u8 len; > > u8 data[]; > > } __packed; > > > > The following code of interest (to which this patch applies) is > > supposed to check if the "info_element->len" is greater than 4 and > > equal to 6, if this is satisfied then, the last two bytes (the > > 4th and 5th index of u8 "data" array) are copied into > > "network->CcxRmState". > > > > Currently the code uses "memcpy()" with the source as > > "_element[4]" which would copy in wrong and unintended > > information. > > > > This patch rectifies this error by using "_element->data[4]" which > > rightly copies the last two bytes as the required state information. > > You should include a 'Fixes' tag for this. Sure! Will resend the patches. I have a doubt about the Fixes tag, the previous commit pertaining to the lines I'm modifying is a checkpatch.pl fix (found using simple "git blame"). Should I write that as the Fixes ? Or should I write in the commit id which created that file and hence, that specific line? git blame -L1960,1980 -- rtllib_rx.c -> returns a single commit which was a checkpatch fix (1970, is the line my patch-1 modifies) git log -S'_element[4]' -- rtllib_rx.c -> returned the commit which created the file (the file which my patch-1 modifies) Which one should I write in the Fixes tag? Thanks! Atul ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 1/2] staging: rtl8192e: Pass array value to memcpy instead of struct pointer
On 2/20/21 12:21, Atul Gopinathan wrote: > The variable "info_element" is of the following type: > struct rtllib_info_element *info_element > > rtllib_info_element is a struct containing the following fields as > defined in drivers/staging/rtl8192e/rtllib.h: > > struct rtllib_info_element { > u8 id; > u8 len; > u8 data[]; > } __packed; > > The following code of interest (to which this patch applies) is > supposed to check if the "info_element->len" is greater than 4 and > equal to 6, if this is satisfied then, the last two bytes (the > 4th and 5th index of u8 "data" array) are copied into > "network->CcxRmState". > > Currently the code uses "memcpy()" with the source as > "_element[4]" which would copy in wrong and unintended > information. > > This patch rectifies this error by using "_element->data[4]" which > rightly copies the last two bytes as the required state information. You should include a 'Fixes' tag for this. Also, is this code in -stable? If so, then tag this patch for stable, please. Thanks -- Gustavo > > Signed-off-by: Atul Gopinathan > --- > drivers/staging/rtl8192e/rtllib_rx.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/staging/rtl8192e/rtllib_rx.c > b/drivers/staging/rtl8192e/rtllib_rx.c > index 66c135321da4..15bbb63ca130 100644 > --- a/drivers/staging/rtl8192e/rtllib_rx.c > +++ b/drivers/staging/rtl8192e/rtllib_rx.c > @@ -1963,15 +1963,15 @@ static void rtllib_parse_mife_generic(struct > rtllib_device *ieee, > > if (info_element->len > 4 && > info_element->data[0] == 0x00 && > info_element->data[1] == 0x40 && > info_element->data[2] == 0x96 && > info_element->data[3] == 0x01) { > if (info_element->len == 6) { > - memcpy(network->CcxRmState, _element[4], 2); > + memcpy(network->CcxRmState, _element->data[4], 2); > if (network->CcxRmState[0] != 0) > network->bCcxRmEnable = true; > else > network->bCcxRmEnable = false; > network->MBssidMask = network->CcxRmState[1] & 0x07; > if (network->MBssidMask != 0) { > network->bMBssidValid = true; > ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 1/2] staging: rtl8192e: Pass array value to memcpy instead of struct pointer
The variable "info_element" is of the following type: struct rtllib_info_element *info_element rtllib_info_element is a struct containing the following fields as defined in drivers/staging/rtl8192e/rtllib.h: struct rtllib_info_element { u8 id; u8 len; u8 data[]; } __packed; The following code of interest (to which this patch applies) is supposed to check if the "info_element->len" is greater than 4 and equal to 6, if this is satisfied then, the last two bytes (the 4th and 5th index of u8 "data" array) are copied into "network->CcxRmState". Currently the code uses "memcpy()" with the source as "_element[4]" which would copy in wrong and unintended information. This patch rectifies this error by using "_element->data[4]" which rightly copies the last two bytes as the required state information. Signed-off-by: Atul Gopinathan --- drivers/staging/rtl8192e/rtllib_rx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8192e/rtllib_rx.c b/drivers/staging/rtl8192e/rtllib_rx.c index 66c135321da4..15bbb63ca130 100644 --- a/drivers/staging/rtl8192e/rtllib_rx.c +++ b/drivers/staging/rtl8192e/rtllib_rx.c @@ -1963,15 +1963,15 @@ static void rtllib_parse_mife_generic(struct rtllib_device *ieee, if (info_element->len > 4 && info_element->data[0] == 0x00 && info_element->data[1] == 0x40 && info_element->data[2] == 0x96 && info_element->data[3] == 0x01) { if (info_element->len == 6) { - memcpy(network->CcxRmState, _element[4], 2); + memcpy(network->CcxRmState, _element->data[4], 2); if (network->CcxRmState[0] != 0) network->bCcxRmEnable = true; else network->bCcxRmEnable = false; network->MBssidMask = network->CcxRmState[1] & 0x07; if (network->MBssidMask != 0) { network->bMBssidValid = true; -- 2.27.0 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel