{"id":2220515,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2220515/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-gpio/patch/20260407-treewide-fixes-v1-3-66c9744a56a3@oss.qualcomm.com/","project":{"id":42,"url":"http://patchwork.ozlabs.org/api/1.1/projects/42/?format=json","name":"Linux GPIO development","link_name":"linux-gpio","list_id":"linux-gpio.vger.kernel.org","list_email":"linux-gpio@vger.kernel.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260407-treewide-fixes-v1-3-66c9744a56a3@oss.qualcomm.com>","date":"2026-04-07T12:49:54","name":"[libgpiod,03/14] core: fix 1-byte buffer over-read bugs in gpiod_chip_info_from_uapi()","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"08979dd4860878b6a1b4b922f38b932ee459290f","submitter":{"id":92196,"url":"http://patchwork.ozlabs.org/api/1.1/people/92196/?format=json","name":"Bartosz Golaszewski","email":"bartosz.golaszewski@oss.qualcomm.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-gpio/patch/20260407-treewide-fixes-v1-3-66c9744a56a3@oss.qualcomm.com/mbox/","series":[{"id":498978,"url":"http://patchwork.ozlabs.org/api/1.1/series/498978/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-gpio/list/?series=498978","date":"2026-04-07T12:49:56","name":"libgpiod: assortment of fixes","version":1,"mbox":"http://patchwork.ozlabs.org/series/498978/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2220515/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2220515/checks/","tags":{},"headers":{"Return-Path":"\n <linux-gpio+bounces-34790-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-gpio@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=fjuV/BiP;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=cjLlPfxj;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-gpio+bounces-34790-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=\"fjuV/BiP\";\n\tdkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=\"cjLlPfxj\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=205.220.180.131","smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=oss.qualcomm.com"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fqmLG69JZz1xy1\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 07 Apr 2026 22:52:06 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 0F89A30382A8\n\tfor <incoming@patchwork.ozlabs.org>; Tue,  7 Apr 2026 12:51:20 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id D4B403B47E5;\n\tTue,  7 Apr 2026 12:51:19 +0000 (UTC)","from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com\n [205.220.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 758503A63F6\n\tfor <linux-gpio@vger.kernel.org>; Tue,  7 Apr 2026 12:51:18 +0000 (UTC)","from pps.filterd (m0279871.ppops.net [127.0.0.1])\n\tby mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 6376j7N72009223\n\tfor <linux-gpio@vger.kernel.org>; Tue, 7 Apr 2026 12:51:17 GMT","from mail-qt1-f199.google.com (mail-qt1-f199.google.com\n [209.85.160.199])\n\tby mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dcmrrtrxn-1\n\t(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n\tfor <linux-gpio@vger.kernel.org>; Tue, 07 Apr 2026 12:51:17 +0000 (GMT)","by mail-qt1-f199.google.com with SMTP id\n d75a77b69052e-50b4076dc16so219576391cf.2\n        for <linux-gpio@vger.kernel.org>;\n Tue, 07 Apr 2026 05:51:17 -0700 (PDT)","from brgl-qcom.local ([2a01:cb1d:dc:7e00:b36f:5370:5f91:2d5])\n        by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-4887e83682fsm577526505e9.7.2026.04.07.05.51.15\n        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n        Tue, 07 Apr 2026 05:51:15 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775566279; cv=none;\n b=axBpTy6Fs5kbenxF96CT8Fd8CFoQFE+S5xPEU6JIsHVlydLGMX33YYGqu1CIIWCOTRNiMwz9Qj+ObNF9RcBtQl/Nnj3xAKlf8VlHtnHP9d0Jp6xKZZKfvfaUXCFAFLQEC0sA5wybfxJmWkRxxhj9nAmvaj+VC54qCc75cAzfFMg=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775566279; c=relaxed/simple;\n\tbh=J6H9SbxxS0yRZ3xxXuuGqxHlzRXpBkynpyWCI7U5UbI=;\n\th=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References:\n\t In-Reply-To:To:Cc;\n b=cuPVpxbkJotkjE8ynLaaSWEFL+hiEBSifz3iuOiVUdwXDf5I0gcL7Wfz527ozQpmuBxts/HrOvKtRgvyefhiQwapzgeyxruOwhC3UZktALv6qfjE6k8RUHGEujVJZpX7a7bjG0s8G/ja9hWTu2BLkbaQ0xoJG1tD4funTla6pxQ=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com;\n spf=pass smtp.mailfrom=oss.qualcomm.com;\n dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=fjuV/BiP;\n dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=cjLlPfxj; arc=none smtp.client-ip=205.220.180.131","DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n\tcc:content-transfer-encoding:content-type:date:from:in-reply-to\n\t:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=\n\txuZJ6AhpjvvkTzhxwoCOwLXOgdQmvfBixaS7ScQNOvE=; b=fjuV/BiPW+sgo6+m\n\tFwoch6wdTOeMQ33Q3AcWQD7Yw8decXobeIW2TOTUL/V74MwSpZy+vAHux3bdYDB9\n\tj1S0qm5AReBwwMTJZvt8hprJWR59tMENc0CZb7UJLBGZ/kI6mj9uzgBZbM5Xr8JG\n\tBbsb9KQQuKsuid0cZsJ3nqUO2+J3dYuEijdxoDcCTGG08ARxZ4KP2hU2ARlkEtp2\n\tajoiKsFUey1TaEaVB5LGBbYMHYaRqSj34uru6VphvXJwgjAs1Mg50+4Ac5ilrVzx\n\taFmOUhggMFvhhuHzLrt4WnUlnmUaQ3XFExJRkI+m7yPQ2Bm/yAk7Q19qKz8LvMmc\n\txqJZcQ==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=oss.qualcomm.com; s=google; t=1775566277; x=1776171077;\n darn=vger.kernel.org;\n        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding\n         :mime-version:subject:date:from:from:to:cc:subject:date:message-id\n         :reply-to;\n        bh=xuZJ6AhpjvvkTzhxwoCOwLXOgdQmvfBixaS7ScQNOvE=;\n        b=cjLlPfxj5ufKy0BhyKjBlq+ABDLshUkzHpXeg/uCk0YigVE+fkCB1b9l1uANyxKHm8\n         zc6Oc+VTkbq0Xh7WbqNuxATAP+DZwIy+7DuQWLSlOq4J6eyorQ/Vp6vc5esHzm447j1N\n         02I3TMl+DoeDKaACXsxXBO+FVezPqknQb0KpZzQ6q6KvRYryjfQEOsWN4pirYPpXAlda\n         umowvzN+f7hrqVR3aKVgne55Av0SRzddufOu8hVOA1E4Y/zRPYqLVwi2hSL7sm3ScP5y\n         AAbldxnbJuP3VkPRJoU7RUXV5mWmvi/GERZ7l4V88x6CHzVj5H2vndK3VVo4EjZb34l0\n         sQQA=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1775566277; x=1776171077;\n        h=cc:to:in-reply-to:references:message-id:content-transfer-encoding\n         :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to\n         :cc:subject:date:message-id:reply-to;\n        bh=xuZJ6AhpjvvkTzhxwoCOwLXOgdQmvfBixaS7ScQNOvE=;\n        b=ZRLtGFzqPEqTBvSLDF5K26XyVlxef53HbcNmnpeAo5NLK4kNeYy2WfAv4/qr6aaGqY\n         cZZy4RdmBULQRQYSPlXgG+2NtiwPkJQcpR4lYOUxQD3c1mojhkVrpzZKOvzSp5+rw4uf\n         pLFVZTUS/iGFcVHZAq36SW/k+/Iv6DdJCcQ+jxljxpxPbjRf+gR90C3WKKW4nnrZ93H0\n         QntVfLH2l6OMP4FYZCOWRQlZw+ssuhs36ofkTBcKKIlFA1+fpsglexw2WIbCVBsgRXTG\n         +dKCRJTHKoK45oQjmrd0IjRNFsYsBqiyvUR4vLrRhGBLrX4MnV4VE+SfptajdcjbDIA0\n         md9A==","X-Gm-Message-State":"AOJu0Yy2lzId5uBMQONtO3E62U/ifejyjBrVD267revGQTZSQuJkzacf\n\t+JZDs83A3qSFbLUOvph59l+Uyv40p9ZtzcGp6ta6PVKbfxhnNjVDyIW869xdN/+slGYo0ycxoz/\n\t/qZOs2dfxoStyGc9jFFk6qWq5zhiGAupsNQfeFwo+5EZ9ecK65Jb9QahoOa6WeBRP","X-Gm-Gg":"AeBDieuvLvnzm8hnrOmCsUaC8dFlVWsNmckMbwDtz7ds1uhdnttgO3MEUCmDXuyAYPj\n\t/Y3dmnKzC/LzVNsJVxjqMG865Rc9cQ/QrGLe9B6ACQ9Uh5XDNFwNOfRD6faP2mhnDYiixlsvkHn\n\tRD+wMX556bCSyFNJvV7mKbJPUnc7JVBKFKDQOngU74mIKQIgcEl8co9RjnqgzZSj6Kx22V7sVBD\n\tJwraNoZVELkFXUKDztynB0B9FqYBuIHMgqzxbC2qLkCzkiLFbMwjWeP+hpr54te4A2ZDiphZw6N\n\t9Nso/1tYs8h6xpTW+z/nps9VxZzSQmrGlBuIr9OCm0Z6uuYsVyeldBnPApOQl02JNXxzJyPsEy3\n\tq2SNyeDqeD0wvy/KHqHFalrDyVAggeqmtxC+MwBvVXc8lxMNpyOQ=","X-Received":["by 2002:a05:622a:138a:b0:50d:7c4b:5c5b with SMTP id\n d75a77b69052e-50d7c4b619dmr173986091cf.5.1775566277054;\n        Tue, 07 Apr 2026 05:51:17 -0700 (PDT)","by 2002:a05:622a:138a:b0:50d:7c4b:5c5b with SMTP id\n d75a77b69052e-50d7c4b619dmr173985641cf.5.1775566276631;\n        Tue, 07 Apr 2026 05:51:16 -0700 (PDT)"],"From":"Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>","Date":"Tue, 07 Apr 2026 14:49:54 +0200","Subject":"[PATCH libgpiod 03/14] core: fix 1-byte buffer over-read bugs in\n gpiod_chip_info_from_uapi()","Precedence":"bulk","X-Mailing-List":"linux-gpio@vger.kernel.org","List-Id":"<linux-gpio.vger.kernel.org>","List-Subscribe":"<mailto:linux-gpio+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-gpio+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"7bit","Message-Id":"<20260407-treewide-fixes-v1-3-66c9744a56a3@oss.qualcomm.com>","References":"<20260407-treewide-fixes-v1-0-66c9744a56a3@oss.qualcomm.com>","In-Reply-To":"<20260407-treewide-fixes-v1-0-66c9744a56a3@oss.qualcomm.com>","To":"Linus Walleij <linusw@kernel.org>, Bartosz Golaszewski <brgl@kernel.org>,\n        Kent Gibson <warthog618@gmail.com>, 4fqr <4fqr@proton.me>,\n        Vincent Fazio <vfazio@xes-inc.com>","Cc":"linux-gpio@vger.kernel.org,\n        Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>","X-Mailer":"b4 0.14.2","X-Developer-Signature":"v=1; a=openpgp-sha256; l=1662;\n i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id;\n bh=J6H9SbxxS0yRZ3xxXuuGqxHlzRXpBkynpyWCI7U5UbI=;\n b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBp1P21pHslcxtwHusoxjsXcw1iqH/rMOwQM83V0\n XeasXF/4bOJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCadT9tQAKCRAFnS7L/zaE\n w/xGEACuGwO2KYDmvFM5RgtR9JjrxWil2V4egPhL0k6JmwXfFbMrmBTb0TsGuAg+tSrycWPKZDR\n X5xaB6kerryW1mt/bxjNE1LVbt53HpJqcCI4KzfKXOcvGMm6xX3soLnLUtL5f9mf2RG69EXAD7d\n UR+GVMniHBUtpjmvTXgq9WtGUUKJVtDdraR8GhRwbIS+dGilOcq+kTUM+l7SDdmxbrFykkpRmSR\n 8diUbgwhSUaRyI2NvrOO9PgtNRLZQUAcvyVU1IXGtOOsmLWCDeLJXJaDx5pJ7nNyc6Apk584CHB\n jGk5eWGyabKYAUqmWtI0T8RULXaFT9dRANsG/ftZSkn7OALhbxSR9jXYnVikrmQ0I5/8SYWz8eQ\n UkEKs06bIYnnVceMu8XJbUB7gr0Qjt73zDms/IIrOxlaQ9sJWgdWwcsBVGxHMPZnv2tlHI26GI+\n XOPGpThMyPZCnp8VpJg+QPNLSNi2zERg0rOOlhpopvC+GkrFUsQqIy6aMeRlp/jXk6prQz6YgQv\n HsQTt9bhe4Qc4CwsbWO0P52d0bEV+cQQ5RBqBQvl3XInYxg25bSKHPe7erRG8k5OwvICgJN1fDQ\n 6tZFnhSbCepEi8FTAAEtiku7Q+HFxucmYtfyzj3No94CSEEFJpNxGb7XPVHGf8Nr+yxXJ/ENNVy\n XAaUU4sdueU2V4g==","X-Developer-Key":"i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp;\n fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDA3MDEyMCBTYWx0ZWRfX0yg6IWOGnjzY\n xTEL2WRWFPwvKFL5Nw8+BhXmPfzsIBfuiMTdg0xlKjb5mkh5QusVT0JjVJSzelFWUap3fe1l0Uf\n gY3PGeZ4+PC6STDjGGdhy3pApkVdEScTnmeQh4NyD+C0I3MH2eLLsRoCgoOrHThTdsOXY9m9QDM\n k5hvy+WDHGvEbb60GtIFpk7Z+M3vghqJEI8Ec+12zcpfg05pqerugPIIgD62V+xrbetD42e5YvI\n fuR92icGMN6iDmH0vlgd9Ti1IHhYdX/oRRF199m7UlDcSbG852/RYZcPmvzdFNQv5DqlwTJLUDx\n o3ZVS/q/qLkM89CTCWF49qqTm3YL7C2c6Zj6C8vOxwI1o5MTc9lGf/qWGoRyfHfxVHb90hvEuH+\n GL58VTWdLf6IVqeCUP6t8/PmNwyilOIMKhiKzO6/xD9O0aTSJnGvmYeNrlbGKQDz2ajWM3fOkK3\n Au7pQ8PocYIlvm5SzLQ==","X-Proofpoint-GUID":"UL_9-QMk7_qMAKJ27o_JolYWp04ScFde","X-Proofpoint-ORIG-GUID":"UL_9-QMk7_qMAKJ27o_JolYWp04ScFde","X-Authority-Analysis":"v=2.4 cv=LquiDHdc c=1 sm=1 tr=0 ts=69d4fdc5 cx=c_pps\n a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10\n a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22\n a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8\n a=3rzlRIdmsTTl-dq41FsA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-07_02,2026-04-07_02,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n lowpriorityscore=0 priorityscore=1501 adultscore=0 phishscore=0\n impostorscore=0 spamscore=0 suspectscore=0 clxscore=1015 bulkscore=0\n malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc=\n route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000\n definitions=main-2604070120"},"content":"The copy in gpiod_chip_info_from_uapi() uses sizeof(info->name) = 33 as\nthe strncpy length while it should read at most GPIO_MAX_NAME_SIZE = 32.\nSame for info->label. 33 is the size of the target buffer where we\nallocate an additional byte for the NULL-terminator. Limit the number of\nread bytes to the correct value.\n\nFixes: b7ba732e6a93 (\"treewide: libgpiod v2 implementation\")\nReported-by: 4fqr <4fqr@proton.me>\nSigned-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>\n---\n lib/chip-info.c | 6 +++---\n 1 file changed, 3 insertions(+), 3 deletions(-)","diff":"diff --git a/lib/chip-info.c b/lib/chip-info.c\nindex 2d9f44d1778e29fda05cf7cf7fa5d67d979d58fd..6b55197f96b78ea66559394e4e788c4263ede5a0 100644\n--- a/lib/chip-info.c\n+++ b/lib/chip-info.c\n@@ -57,7 +57,7 @@ gpiod_chip_info_from_uapi(struct gpiochip_info *uapi_info)\n \t * GPIO device must have a name - don't bother checking this field. In\n \t * the worst case (would have to be a weird kernel bug) it'll be empty.\n \t */\n-\tstrncpy(info->name, uapi_info->name, sizeof(info->name));\n+\tstrncpy(info->name, uapi_info->name, GPIO_MAX_NAME_SIZE);\n \n \t/*\n \t * The kernel sets the label of a GPIO device to \"unknown\" if it\n@@ -65,9 +65,9 @@ gpiod_chip_info_from_uapi(struct gpiochip_info *uapi_info)\n \t * we got an empty string, do the same.\n \t */\n \tif (uapi_info->label[0] == '\\0')\n-\t\tstrncpy(info->label, \"unknown\", sizeof(info->label));\n+\t\tstrncpy(info->label, \"unknown\", GPIO_MAX_NAME_SIZE);\n \telse\n-\t\tstrncpy(info->label, uapi_info->label, sizeof(info->label));\n+\t\tstrncpy(info->label, uapi_info->label, GPIO_MAX_NAME_SIZE);\n \n \treturn info;\n }\n","prefixes":["libgpiod","03/14"]}