{"id":2225571,"url":"http://patchwork.ozlabs.org/api/1.2/patches/2225571/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/patch/20260421075439.16696-6-ravi@prevas.dk/","project":{"id":18,"url":"http://patchwork.ozlabs.org/api/1.2/projects/18/?format=json","name":"U-Boot","link_name":"uboot","list_id":"u-boot.lists.denx.de","list_email":"u-boot@lists.denx.de","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260421075439.16696-6-ravi@prevas.dk>","list_archive_url":null,"date":"2026-04-21T07:54:35","name":"[v2,5/9] lib/string.c: implement strdup() and strndup() in terms of memdup_nul()","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"b2ae894de974c0ecef3456ebbb8909ad723e458b","submitter":{"id":89443,"url":"http://patchwork.ozlabs.org/api/1.2/people/89443/?format=json","name":"Rasmus Villemoes","email":"ravi@prevas.dk"},"delegate":{"id":3651,"url":"http://patchwork.ozlabs.org/api/1.2/users/3651/?format=json","username":"trini","first_name":"Tom","last_name":"Rini","email":"trini@ti.com"},"mbox":"http://patchwork.ozlabs.org/project/uboot/patch/20260421075439.16696-6-ravi@prevas.dk/mbox/","series":[{"id":500753,"url":"http://patchwork.ozlabs.org/api/1.2/series/500753/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/list/?series=500753","date":"2026-04-21T07:54:32","name":"add memdup_nul(), use it and memdup() in a few places","version":2,"mbox":"http://patchwork.ozlabs.org/series/500753/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2225571/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2225571/checks/","tags":{},"related":[],"headers":{"Return-Path":"<u-boot-bounces@lists.denx.de>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=prevas.dk header.i=@prevas.dk header.a=rsa-sha256\n header.s=selector1 header.b=OphC37wS;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=85.214.62.61; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)","phobos.denx.de;\n dmarc=pass (p=reject dis=none) header.from=prevas.dk","phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de","phobos.denx.de;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=prevas.dk header.i=@prevas.dk header.b=\"OphC37wS\";\n\tdkim-atps=neutral","phobos.denx.de;\n dmarc=pass (p=reject dis=none) header.from=prevas.dk","phobos.denx.de;\n spf=pass smtp.mailfrom=rasmus.villemoes@prevas.dk","dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=prevas.dk;"],"Received":["from phobos.denx.de (phobos.denx.de [85.214.62.61])\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 4g0F623ZNdz1yGs\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 21 Apr 2026 17:55:54 +1000 (AEST)","from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id D455984309;\n\tTue, 21 Apr 2026 09:55:23 +0200 (CEST)","by phobos.denx.de (Postfix, from userid 109)\n id 4BDE68436C; Tue, 21 Apr 2026 09:55:07 +0200 (CEST)","from PA4PR04CU001.outbound.protection.outlook.com\n (mail-francecentralazlp170130007.outbound.protection.outlook.com\n [IPv6:2a01:111:f403:c20a::7])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 5319284378\n for <u-boot@lists.denx.de>; Tue, 21 Apr 2026 09:55:05 +0200 (CEST)","from AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:681::18)\n by GV2PR10MB6233.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:150:78::14)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9818.32; Tue, 21 Apr\n 2026 07:54:58 +0000","from AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM\n ([fe80::ebc6:4e0d:5d6b:95d8]) by AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM\n ([fe80::ebc6:4e0d:5d6b:95d8%6]) with mapi id 15.20.9846.016; Tue, 21 Apr 2026\n 07:54:58 +0000"],"X-Spam-Checker-Version":"SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de","X-Spam-Level":"","X-Spam-Status":"No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,\n DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED,\n SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2","ARC-Seal":"i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=ekcFjXf1vWaOFmZSyVf3k0Ocvibcry9TQonQkZM6a5Zx0p76QnJjTFMY5DC+OKbDB0pmuW1+mTRbWObW7LOqxXi00rvKZQieIc3nfkx1DS+e5nEuolqalejx9nfIbwNYa1ObuTzAudcFhkb453D85SJqepIO2KPeIu5TxF0Cn56CqMYWL+6O+SBO/o3wMvyZ3BAL5gbZQmH+5+DhomFOFtWbvUvevXNZ3MgAg6doZHU8UmTKNAi8nC87+JnMhG5KXXeKgSpAzVG+VFFpOMhkj1So9utzQ2vg+PzOURvIz/Sg452DhVH1Sjo/ejz+MLeviBRQYc8Mt1nmte0n1VAw9w==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=trEjd34YEuV87QLT2Pu3QHXOj9josfyoo02S+8GpvXM=;\n b=JYzZKl/6ff4BP2nmjLzhCGNrihj925yHWJ75l+OUcKL9WTvLDccoLyT3wP25L74IGcwV6Cy2TJviLiwMawVIjRAY2X+p51WX8WQfDBNCjviMYa+aOGa47tDv48S8YNmqMnVHrX12OkD4t06rV363KOHIoPoGNbUIKJPrMZSyAkzogU0dhbvZfMihISdprQHoW1dGIG9r7YGbkBM3gR7O+oyH1UWotRccMXWY5WcHLpnNxSTbAm5XEpUJeyf81XdQr2BQU2ZU2vzBEyxZL5/JPJUQ3KDGFyqDeA6Dpj1JnOHit4b0qU44fnbho+UB0axayqc0QV//lvYyn6q8VyhOog==","ARC-Authentication-Results":"i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=prevas.dk; dmarc=pass action=none header.from=prevas.dk;\n dkim=pass header.d=prevas.dk; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=prevas.dk;\n s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=trEjd34YEuV87QLT2Pu3QHXOj9josfyoo02S+8GpvXM=;\n b=OphC37wS1PmsAgB9RpmKQ+u6Kix7bRNsBaOE4K5Z4Pw5JMkNBsRoDEHIFgf8I0ra71dfUBQDanpe2TGkzHL0I1pDLxW5uu+WUtj8yNxz09oNOKG9Tcc7QzOpB7Hi25JyaDbCdURTCPFt7Mpk9vEYPrs2baNyZEHIGRPT/bv43FI=","From":"Rasmus Villemoes <ravi@prevas.dk>","To":"u-boot@lists.denx.de","Cc":"Tom Rini <trini@konsulko.com>, Simon Glass <sjg@chromium.org>,\n Rasmus Villemoes <ravi@prevas.dk>","Subject":"[PATCH v2 5/9] lib/string.c: implement strdup() and strndup() in\n terms of memdup_nul()","Date":"Tue, 21 Apr 2026 09:54:35 +0200","Message-ID":"<20260421075439.16696-6-ravi@prevas.dk>","X-Mailer":"git-send-email 2.53.0","In-Reply-To":"<20260421075439.16696-1-ravi@prevas.dk>","References":"<20260421075439.16696-1-ravi@prevas.dk>","Content-Transfer-Encoding":"8bit","Content-Type":"text/plain","X-ClientProxiedBy":"CPBP307CA0005.DNKP307.PROD.OUTLOOK.COM (2603:10a6:380:1::8)\n To AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM\n (2603:10a6:20b:681::18)","MIME-Version":"1.0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"AS5PR10MB8243:EE_|GV2PR10MB6233:EE_","X-MS-Office365-Filtering-Correlation-Id":"83c5f356-8c46-4528-5b5d-08de9f7b4896","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;\n ARA:13230040|366016|52116014|376014|1800799024|38350700014|56012099003|18002099003|22082099003;","X-Microsoft-Antispam-Message-Info":"\n Tktb+3qW3b0ZXUp2JIwWhHvgUT17LSy/Bb2a2Vdw3lFGluaoU3j3SkDfabnN4gJdEVwr+/e1VyZp/0DWRySwDsEFLnWzm/zUPkKQV5ItRRSClgzVWERGp6x5hZFxQsCgu06SOndZ+iGTNuCMoA0TX9rlZFbExQ4d+75YOSYeXaEMQJdwua/FOeI28+pzKejWICo8ueYrCEuEZ0FpfZyRSw9lvK0H1sg7pL/K/MLCfdPyADC0xoJQhMK8/x0TUO+tb9IObGXnoatTsCKvUgFb+IpbOnHNSFWCgHXv8NBkN0U5lYMT4pxLOCm8ZafydaEG/oun42Ged//L2S+mILdjbPthmgvoCr69Wv3V4y9pnwFKGV3b7LE8zX6kBQzpJaZ/9diEYi+Z67Nebpuk2+mrcjspkiT/qjBHSZGtFtU0+JD2CmVQWlbC2rDVeYwDfDjkQHgrYVjp3CLK2FRH+FlhIBl/buTuzl+uz3qfoFtWDz2dNQ1vbKmA0YKjA3S8VyaxcghafxYP6Om7dtCPIb7U5yzUMWWxV0nP3KH8ftdIumaHg8/6f1URMFwvcwXoAtg5iWaDh/VdnkWIAayO4CBjxW3JcBGCXfRXrj4RunD7TwxmwRz2Nry2b8NwG9OpHNhwwrxmh2PqqGBMxOnjBF3sPuuWKxv719wHamh7c4Xol/n4otrRgd4OmXyFdoAHJBT3o/euQ3pu+CQlhCb7B9qCyNKoy2UnsTUk+tqGC19yG7Ciy0ysFCb30iKtZkg18Yn+V9MlWcjzc+7TXtBJYISUQyIxEoQ2oXz8PRjVQqifQGw=","X-Forefront-Antispam-Report":"CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM; PTR:; CAT:NONE;\n SFS:(13230040)(366016)(52116014)(376014)(1800799024)(38350700014)(56012099003)(18002099003)(22082099003);\n DIR:OUT; SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"\n /3E2QRy/Ht66bxzbOhQWz7QdwH3iU0lNHEntrA2Wu5wyP+PScIiUy9N5px3lwz0Ied/2AUuL4Fwme81UL5ehyD1F8xfNSKDVMS4L9zOdxhoWuGl5jMo5EJl584ELYJPaCOip5pxbosTIdj1GHDp3VhlgAUBmaL8BQcLYjlz2PbXBAwBh+bQUwEFhvk/1ILRvicnxu6FGTFjzuLEmikxofV7jZBnUgIt3xO6OX8n4+CSVPO8Qz5lCSDG4d1PnEFlMCyCT0sxk8MTYOIkS72HF10JRS/4CVqhHgri9I/UjoDV2OUurs5ZaPyTq1IEKEOq/F0gQ0uuynodVTe9iyvKQB6to+RGdQnbdPibDEgv458JZKq6AUYAYrG/UsIwqh+UMT3mlzhRiTrxtxXkK/bPGz/vmTEMlposbwyfu/SV10q8q3nmmpBvZKf8QJeOSqpiBQjdIomBOitAb+Z4YeA/57kI6iZS6XN/5gQU9RKZeI/IllFsZZd03qJR5YW0a2cZiC/GrFi2iCY8Ucbt6xa7RlOA1KGdMqkOJKFLtGp3NozHeYLtelnp+xSrZGhsAQsP0ydUC/2puKev+ffhwtUkqcbmDOwWV1SdaX6mAglmGR3rVZBYib0m4trev7uj+tihjBbg6C6jXpVG2CTiMKIDZZzJ5BHcWsol9lZ0uofWu+yGyI+O582qtMhtONunJvRmeTxrkU8ZM0OvGzhjsw8QAxqLH2khUX+aks+ttNSZlaBgMbRwMWKbwvmEIqe2uwlm2VWaXP++1jjyPdvoBhEFattSu7PQeez0uC0OgcJgf9btvRfeMRRfkwcM7iZ1rsX/odTgy8h5FU7m07CSjMjS5hRizrCXeuaS5KLqxt5vBv53ew/oZZELgiRtiQGY6QyeEnvIuY5RmnPgBPE8MxWtLPiJ7WDjWF3Hnm35XkURDGykZJ5gjWo4dr4tLeSgIUP86kJfrZ7Oez019hJXag3SLBRq9WzA8jzPv33eazpd+prR30dwcWpE2Aq2rmJsA5cfOaN63LiLguFQ1d/x9QCQiXAbDFdHclUZJymXXkiTEUvVDZLh92i7tDBbEowplB0UBrqCpQtzkNP4Rj7aCTdOAGwnLnE6lIy0bJ7Qz8kykSg9kN4P2K6ibu3pqAL7H0iq+AOYP4pi6B5JkoYWL2pPDImlvblPmAghll8t1tClW3AglmsSTz2xBgnDvIzliJuK8tf9rjQXFIUgEzEembCbW5jlH2KsPe7FHhLsFPvusu58pm4VfeMmvRPd4lEJ899oHQtPmz1zZC9hbnZVNJK1gGCR/yAh5XHSfgFIgJmlIT/m53paVR3A9BKf4k/ANNGogt/jrpWfE7s3UqjyNEr1tshz83cxNKc/S0148+V0AVf5vRCdXz4CFIP8McRjDZyH36O4t19cPZoUMCVUa8YQUhTkMHJpeJFx1Xe8MgioFFJ+MRpHD4wPtKE+ve9N/s0bNpYCUtOBJ4PlMToNCq/pyEVl+8pgWSU7U9UXZpnnu8qFZEA+d5FTgWIrJf/b7sw6Rl2zRRDOOXlzWeOs4amzI4K84v4L+aHt58EebR11Uh2vojncFdEr0OY1B1nOvqhD88IAR0z0gqzWbutb+qh7qHksdewM9lduA2HCaksMly7e79c+w61kt+RjRuPzo2nwZu7xsdGpFogSPnfZKZF2Yts9vtG7LLQGUdPHzONhVGhdbPyK2UaV9JIvoKu/GcaVmXYgY1tw0qJZoBZ1myi8MI1qI4oMc4O68VTTTMRQbe50=","X-OriginatorOrg":"prevas.dk","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 83c5f356-8c46-4528-5b5d-08de9f7b4896","X-MS-Exchange-CrossTenant-AuthSource":"AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"21 Apr 2026 07:54:58.1721 (UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"d350cf71-778d-4780-88f5-071a4cb1ed61","X-MS-Exchange-CrossTenant-MailboxType":"HOSTED","X-MS-Exchange-CrossTenant-UserPrincipalName":"\n o9xesDsQJwgAARTdDKyrKrnoCqTERaG+NqZppEAeDPguYygIsfyQlusDvE0m1lORvUOjk3KgEu+176S3QX7vSYWC+VoKwVTJX4DpTc+bNvA=","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"GV2PR10MB6233","X-BeenThere":"u-boot@lists.denx.de","X-Mailman-Version":"2.1.39","Precedence":"list","List-Id":"U-Boot discussion <u-boot.lists.denx.de>","List-Unsubscribe":"<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>","List-Archive":"<https://lists.denx.de/pipermail/u-boot/>","List-Post":"<mailto:u-boot@lists.denx.de>","List-Help":"<mailto:u-boot-request@lists.denx.de?subject=help>","List-Subscribe":"<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>","Errors-To":"u-boot-bounces@lists.denx.de","Sender":"\"U-Boot\" <u-boot-bounces@lists.denx.de>","X-Virus-Scanned":"clamav-milter 0.103.8 at phobos.denx.de","X-Virus-Status":"Clean"},"content":"With the addition of memdup_nul(), strdup() and strndup() can be\nimplemented as one-liners.\n\nWhile not required by POSIX or C, do keep the behaviour of gracefully\naccepting a NULL source and simply return NULL.\n\nReviewed-by: Simon Glass <sjg@chromium.org>\nSigned-off-by: Rasmus Villemoes <ravi@prevas.dk>\n---\n lib/string.c | 30 ++----------------------------\n 1 file changed, 2 insertions(+), 28 deletions(-)","diff":"diff --git a/lib/string.c b/lib/string.c\nindex 3923cce5561..5ccd1011ab5 100644\n--- a/lib/string.c\n+++ b/lib/string.c\n@@ -360,38 +360,12 @@ void *memdup_nul(const void *src, size_t len)\n \n char * strdup(const char *s)\n {\n-\tchar *new;\n-\n-\tif ((s == NULL)\t||\n-\t    ((new = malloc (strlen(s) + 1)) == NULL) ) {\n-\t\treturn NULL;\n-\t}\n-\n-\tstrcpy (new, s);\n-\treturn new;\n+\treturn s ? memdup_nul(s, strlen(s)) : NULL;\n }\n \n char * strndup(const char *s, size_t n)\n {\n-\tsize_t len;\n-\tchar *new;\n-\n-\tif (s == NULL)\n-\t\treturn NULL;\n-\n-\tlen = strlen(s);\n-\n-\tif (n < len)\n-\t\tlen = n;\n-\n-\tnew = malloc(len + 1);\n-\tif (new == NULL)\n-\t\treturn NULL;\n-\n-\tstrncpy(new, s, len);\n-\tnew[len] = '\\0';\n-\n-\treturn new;\n+\treturn s ? memdup_nul(s, strnlen(s, n)) : NULL;\n }\n \n #ifndef __HAVE_ARCH_STRSPN\n","prefixes":["v2","5/9"]}