From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754002AbbFVXvo (ORCPT ); Mon, 22 Jun 2015 19:51:44 -0400 Received: from mailout2.w1.samsung.com ([210.118.77.12]:52137 "EHLO mailout2.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751370AbbFVXve (ORCPT ); Mon, 22 Jun 2015 19:51:34 -0400 X-AuditID: cbfec7f4-f79c56d0000012ee-93-55889f82d556 Message-id: <55889F7F.9090106@samsung.com> Date: Tue, 23 Jun 2015 08:51:27 +0900 From: Krzysztof Kozlowski User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-version: 1.0 To: Dan Carpenter , Tomasz Figa Cc: Thomas Abraham , Linus Walleij , Kukjin Kim , linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org Subject: Re: [patch v2 1/2] pinctrl: samsung: don't truncate the last char References: <20150622151223.GA14156@mwanda> In-reply-to: <20150622151223.GA14156@mwanda> Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrCLMWRmVeSWpSXmKPExsVy+t/xa7pN8ztCDeYeNrd4/W86i8XrF4YW W29JW/Q/fs1sMeXPciaLTY+vsVpsnv+H0eLyrjlsFjPO72OyODZjCaPFql1/GB24PXbOusvu sWlVJ5vHnWt72Dw2L6n3+Pj0FotH35ZVjB6fN8kFsEdx2aSk5mSWpRbp2yVwZbQuki5YKlOx 7s4l5gbGlWJdjJwcEgImEu1nTrJB2GISF+6tB7K5OIQEljJK9E98zg7hPGWUuDR5M1gVr4CW xK22f4wgNouAqkT73D4mEJtNwFhi8/IlYDWiAhESby+fZIKoF5T4MfkeC4gtIhAssX/md1YQ m1lgMZPEhP8GILawgJfElqUzwGqEBLQl5jZsB5vPKaAjMfnlHyCbA6heT+L+RS2IVnmJzWve Mk9gFJiFZMMshKpZSKoWMDKvYhRNLU0uKE5KzzXUK07MLS7NS9dLzs/dxAiJiy87GBcfszrE KMDBqMTDWzC5I1SINbGsuDL3EKMEB7OSCO/UOUAh3pTEyqrUovz4otKc1OJDjNIcLErivHN3 vQ8REkhPLEnNTk0tSC2CyTJxcEo1MAZ/X6XiJc6mqiBwTCrAnkclRcd0MXOz9Oy0yJNBuy3O Py1jz7a+4bHmv8g0zTvTWC5Pl9EubzjRN23DW5F1QZ9vfzp1IkFa7MON3d9Knja9+CmTOYX/ pN36cw52UqKmdnNfqHltVxK4/73T5Yq+9wHvpQlLe4u4av2/VLz9u+XizjdlNSfZS5VYijMS DbWYi4oTAU2jk7uHAgAA Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 23.06.2015 00:12, Dan Carpenter wrote: > We were allocating enough space because sizeof("-grp") and > sizeof("-mux") are both equal to 5 but in the snprintf() we only allowed > for 4 characters so the last 'p' and 'x' characters were truncated. > > The allocate and sprintf can be done in one step with the kasprintf(). > > Signed-off-by: Dan Carpenter Looks good: Reviewed-by: Krzysztof Kozlowski Best regards, Krzysztof > > diff --git a/drivers/pinctrl/samsung/pinctrl-exynos5440.c b/drivers/pinctrl/samsung/pinctrl-exynos5440.c > index f5619fb..fa84db6 100644 > --- a/drivers/pinctrl/samsung/pinctrl-exynos5440.c > +++ b/drivers/pinctrl/samsung/pinctrl-exynos5440.c > @@ -44,9 +44,7 @@ > #define PIN_NAME_LENGTH 10 > > #define GROUP_SUFFIX "-grp" > -#define GSUFFIX_LEN sizeof(GROUP_SUFFIX) > #define FUNCTION_SUFFIX "-mux" > -#define FSUFFIX_LEN sizeof(FUNCTION_SUFFIX) > > /* > * pin configuration type and its value are packed together into a 16-bits. > @@ -215,12 +213,11 @@ static int exynos5440_dt_node_to_map(struct pinctrl_dev *pctldev, > * Allocate memory for pin group name. The pin group name is derived > * from the node name from which these map entries are be created. > */ > - gname = kzalloc(strlen(np->name) + GSUFFIX_LEN, GFP_KERNEL); > + gname = kasprintf(GFP_KERNEL, "%s%s", np->name, GROUP_SUFFIX); > if (!gname) { > dev_err(dev, "failed to alloc memory for group name\n"); > goto free_map; > } > - snprintf(gname, strlen(np->name) + 4, "%s%s", np->name, GROUP_SUFFIX); > > /* > * don't have config options? then skip over to creating function > @@ -254,13 +251,12 @@ static int exynos5440_dt_node_to_map(struct pinctrl_dev *pctldev, > skip_cfgs: > /* create the function map entry */ > if (of_find_property(np, "samsung,exynos5440-pin-function", NULL)) { > - fname = kzalloc(strlen(np->name) + FSUFFIX_LEN, GFP_KERNEL); > + fname = kasprintf(GFP_KERNEL, > + "%s%s", np->name, FUNCTION_SUFFIX); > if (!fname) { > dev_err(dev, "failed to alloc memory for func name\n"); > goto free_cfg; > } > - snprintf(fname, strlen(np->name) + 4, "%s%s", np->name, > - FUNCTION_SUFFIX); > > map[*nmaps].data.mux.group = gname; > map[*nmaps].data.mux.function = fname; > @@ -710,14 +706,12 @@ static int exynos5440_pinctrl_parse_dt(struct platform_device *pdev, > } > > /* derive pin group name from the node name */ > - gname = devm_kzalloc(dev, strlen(cfg_np->name) + GSUFFIX_LEN, > - GFP_KERNEL); > + gname = devm_kasprintf(dev, GFP_KERNEL, > + "%s%s", cfg_np->name, GROUP_SUFFIX); > if (!gname) { > dev_err(dev, "failed to alloc memory for group name\n"); > return -ENOMEM; > } > - snprintf(gname, strlen(cfg_np->name) + 4, "%s%s", cfg_np->name, > - GROUP_SUFFIX); > > grp->name = gname; > grp->pins = pin_list; > @@ -731,14 +725,12 @@ skip_to_pin_function: > continue; > > /* derive function name from the node name */ > - fname = devm_kzalloc(dev, strlen(cfg_np->name) + FSUFFIX_LEN, > - GFP_KERNEL); > + fname = devm_kasprintf(dev, GFP_KERNEL, > + "%s%s", cfg_np->name, FUNCTION_SUFFIX); > if (!fname) { > dev_err(dev, "failed to alloc memory for func name\n"); > return -ENOMEM; > } > - snprintf(fname, strlen(cfg_np->name) + 4, "%s%s", cfg_np->name, > - FUNCTION_SUFFIX); > > func->name = fname; > func->groups = devm_kzalloc(dev, sizeof(char *), GFP_KERNEL); > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in Please read the FAQ at http://www.tux.org/lkml/