lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sun, 10 Apr 2016 11:37:08 -0700 From: Greg Kroah-Hartman <gregkh@...uxfoundation.org> To: linux-kernel@...r.kernel.org Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>, stable@...r.kernel.org, Gabriel Krisman Bertazi <krisman@...ux.vnet.ibm.com>, Insu Yun <wuninsu@...il.com>, Brian King <brking@...ux.vnet.ibm.com>, "Martin K. Petersen" <martin.petersen@...cle.com>, Ben Hutchings <ben@...adent.org.uk> Subject: [PATCH 3.14 60/76] ipr: Fix regression when loading firmware 3.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Gabriel Krisman Bertazi <krisman@...ux.vnet.ibm.com> commit 21b81716c6bff24cda52dc75588455f879ddbfe9 upstream. Commit d63c7dd5bcb9 ("ipr: Fix out-of-bounds null overwrite") removed the end of line handling when storing the update_fw sysfs attribute. This changed the userpace API because it started refusing writes terminated by a line feed, which broke the update tools we already have. This patch re-adds that handling, so both a write terminated by a line feed or not can make it through with the update. Fixes: d63c7dd5bcb9 ("ipr: Fix out-of-bounds null overwrite") Signed-off-by: Gabriel Krisman Bertazi <krisman@...ux.vnet.ibm.com> Cc: Insu Yun <wuninsu@...il.com> Acked-by: Brian King <brking@...ux.vnet.ibm.com> Signed-off-by: Martin K. Petersen <martin.petersen@...cle.com> Cc: Ben Hutchings <ben@...adent.org.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@...uxfoundation.org> --- drivers/scsi/ipr.c | 5 +++++ 1 file changed, 5 insertions(+) --- a/drivers/scsi/ipr.c +++ b/drivers/scsi/ipr.c @@ -3946,6 +3946,7 @@ static ssize_t ipr_store_update_fw(struc struct ipr_sglist *sglist; char fname[100]; char *src; + char *endline; int result, dnld_size; if (!capable(CAP_SYS_ADMIN)) @@ -3953,6 +3954,10 @@ static ssize_t ipr_store_update_fw(struc snprintf(fname, sizeof(fname), "%s", buf); + endline = strchr(fname, '\n'); + if (endline) + *endline = '\0'; + if (request_firmware(&fw_entry, fname, &ioa_cfg->pdev->dev)) { dev_err(&ioa_cfg->pdev->dev, "Firmware file %s not found\n", fname); return -EIO;
Powered by blists - more mailing lists