From patchwork Tue Jan 16 09:34:52 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Storm, Christian" X-Patchwork-Id: 861373 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=googlegroups.com (client-ip=2a00:1450:4010:c07::23a; helo=mail-lf0-x23a.google.com; envelope-from=swupdate+bncbdd6bwv65qpbbx4p67jakgqe66souia@googlegroups.com; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.b="pGjWDr6x"; dkim-atps=neutral Received: from mail-lf0-x23a.google.com (mail-lf0-x23a.google.com [IPv6:2a00:1450:4010:c07::23a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zLQ9v20V5z9sBd for ; Tue, 16 Jan 2018 20:37:38 +1100 (AEDT) Received: by mail-lf0-x23a.google.com with SMTP id m195sf4448081lfg.2 for ; Tue, 16 Jan 2018 01:37:38 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1516095455; cv=pass; d=google.com; s=arc-20160816; b=mYaB0h7Qs+jc+T34MoIGLsgpC+M3ROhHRr6DtIGqqHmqp2nHO8g9oJiPNI4kmXzgrG KHgjY1baGP4aB5apyG/5deHe9jt5xk2VSqisgIqGeV6Ac4n8R0iXAzc9Rbc5/bFLKGiv gJ/SYl+KV9CtqnKptLQJGcF+P0PciSY4Ny8bG7kz9v/GYZCXx2ogp/TaNXnYblebMcYU J7wtH7RIdQKspGSwv5QhMxSPglP4J3c9lyqO/R7qS52pZBVnAHbZV0rZrcP1ef0e3JkC VU8osK0qsGD7ORIxFVL0ux4LRebQj6hqiTWXpBCdbeP7kNcIYej8pb3NGpndTN+nNJFL BazQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:arc-authentication-results:arc-message-signature:sender :dkim-signature:arc-authentication-results; bh=ldXoLmgYSCxDj5/c3ozyze7+/fP/XCk98aOfhZcCAGc=; b=o72Dzrq7qCdBgEsJYoFyKvE91K3NiCaAR+XBt2u1ljvjPwaOanb3fSqvsqlJ4Ryj0E 2PM9MIlUITY2st3eS5hGwV5RB8n61XSloKxb4UsaVy9JosbUEfz8D4Xi7HenWb0XfJtj 12uzdWc9xqdm/L3Jik1Unid2idiI6Ioy0LoPDPZNem7NGCpVvclDATwxW1zlHAve7AQT xd9ajUFk7ScvH5GCFA5bK5Oo0pO0FI+vx2R6IfXQ+6PubJf2ausvd6rKyOt5anaChVxh qgCLGYvm1h3gKGgYDgpzU7s5yZ9Vj0YOXsYnqsFXzDp0XHYXtUcSotfLdul5uUm17CoL megg== ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=pass (google.com: domain of christian.storm@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=christian.storm@siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :list-post:list-help:list-archive:list-subscribe:list-unsubscribe; bh=ldXoLmgYSCxDj5/c3ozyze7+/fP/XCk98aOfhZcCAGc=; b=pGjWDr6xxVCZJda7Ioc5xTLcxkNhcPDoPF9I3LEjOGMLQNvGPjVeo/sJaarlxmhHpz F1dhRyaaOEtwWwCBMDwKgRLPBUN76cp4YuJsTlWVK/RkW/ZvG04d8LM3oAcpodCTk+h7 HDt5kXZk/oYgT8T5dTEr3bdUIBkNZdeLGlsXOXCpIdZfjaVB4RhhKwQEPIQdwqTQLWKB b7zUgNIP7+hPLFIueGnA66OB+s1XCHFyW6dEMsyWQrzTOK2ENoqfUWR8YXLiqpiouJuF Ni4BXp92AufQxP2mIJrHTFE0wRgxaxWtAewGtNkxAgus6PUVkHFdyhKTSDmkVIT6DheL geLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=sender:x-gm-message-state:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding :x-original-sender:x-original-authentication-results:precedence :mailing-list:list-id:x-spam-checked-in-group:list-post:list-help :list-archive:list-subscribe:list-unsubscribe; bh=ldXoLmgYSCxDj5/c3ozyze7+/fP/XCk98aOfhZcCAGc=; b=hRUpfsCTOAmr23ryxPSKvAAFC113gY4em31VWy8Rz0MKQLzF9XsFao06fGH90Epf1A cLgi/DipPkmbCNOSC11RbaMxEFjm5Ktfd93YesOK4hGndDEVwLVMy4OCz/fqZfbknpwY IylZSZRQVCemxPVoBlPPG5knxDio5fTr4K0Yt4sKZP6K1cfY8pEWM6BbY29wO1TbZqb0 L9M3oKK+WSvlTNF4etpLrgr2Y43gikTct7gPr7jRXMQG5QbQFx6nX758ag/vbyLmr0t+ D4lHMMZzbWkmpwWcRWv018XD3sY4+62jKQw09v8xq4oZWDtTJtDh2uUihJW+LU+aB+3U gXIg== Sender: swupdate@googlegroups.com X-Gm-Message-State: AKwxytesJ6xsLMmWHll5lnycZd2Grjlo+XMgyZaZ9KXzTGuR3GsgNxNF dfyuCsw+uP0/qpyoqQQSxC0= X-Google-Smtp-Source: ACJfBosLpDZzXjBRCgYdge+yBOFSNPmgyLgjq8k4l4tooY0iqqswi1UhnAEz0yhPNbnI8+mw0HULxQ== X-Received: by 10.46.112.26 with SMTP id l26mr8466ljc.3.1516095455559; Tue, 16 Jan 2018 01:37:35 -0800 (PST) X-BeenThere: swupdate@googlegroups.com Received: by 10.46.80.71 with SMTP id v7ls403055ljd.0.gmail; Tue, 16 Jan 2018 01:37:34 -0800 (PST) X-Received: by 10.46.65.22 with SMTP id o22mr61723lja.13.1516095454788; Tue, 16 Jan 2018 01:37:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516095454; cv=none; d=google.com; s=arc-20160816; b=yfhEtg4Cq1jRqCtt/tWXUZvspfESEb7WjA0hN9ZsItuqaDn+kQB9F7K7wA7Sh3d97F mvUhTPWzCmJUpEEqIt6OIM41BM2pcVxgTw8PW1DRQX0QrBkLYgxKHuQYnRkFQq+oIr46 AOwAKoWJQZHvAJ/ls5U8yUkhrstlSLMV53ZYj5vgD6oNUTyMu4uKSruyxWYdBrtuPg2L snJ5jIgg4XElJv2oaI1MXNIMWlbmVmxXi40PBUxivhIlnMMY9Hg89dzgOy4CZPMCPbms 6a9j4YNhVPHSmkp6elt4FOKUFHCMPSdgzksEER6rp0jlEOkMWj5K7Z6bqzBG+3PB96Ce hXcg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:arc-authentication-results; bh=287hO0ZzHv47N6Y6p5AFtrfI3InjthTigOT3K9h+1uk=; b=jiMN5SEp6en5x29rdE3wg0AEDK1ZuqJH82cOT7EUQO5BayrN+5xOjkYe7PfYfiO84Z NgyufGvBoSAC7EdVR2wGQG1vrk0N6RCt+enAFiHi9V2gfxP4xoqZc3a8dx1jsq1/bkOM xQPt+wXEWdcq6pyN0NqzryYONuVPBvqG7SsrhTLZlXs/ccg/upCtgYNJ5xPrHhNreRkB 1AfzeYSL1wR5DzzcuEwr2+5f3C1Fnt6Qi1u3Uhu90GyxO0rCTbPWuoPlQhHW2v8BItFk XcQpjOPuUgueiuhq2Vs62hLhhVm8Fa39Mil+HSDXCQohTVUiVI8oKS5aruQeX/M3YHUP rqFg== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of christian.storm@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=christian.storm@siemens.com Received: from david.siemens.de (david.siemens.de. [192.35.17.14]) by gmr-mx.google.com with ESMTPS id k77si211287lfe.1.2018.01.16.01.37.34 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Jan 2018 01:37:34 -0800 (PST) Received-SPF: pass (google.com: domain of christian.storm@siemens.com designates 192.35.17.14 as permitted sender) client-ip=192.35.17.14; Received: from mail1.siemens.de (mail1.siemens.de [139.23.33.14]) by david.siemens.de (8.15.2/8.15.2) with ESMTPS id w0G9bX65006252 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 16 Jan 2018 10:37:34 +0100 Received: from MD1KR9XC.ww002.siemens.net ([139.25.69.251]) by mail1.siemens.de (8.15.2/8.15.2) with ESMTP id w0G9bXS1018835; Tue, 16 Jan 2018 10:37:33 +0100 From: Christian Storm To: swupdate@googlegroups.com Cc: Christian Storm Subject: [swupdate] [PATCH v2] compat.h: introduce compatibility header Date: Tue, 16 Jan 2018 10:34:52 +0100 Message-Id: <20180116093452.5791-1-christian.storm@siemens.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: References: MIME-Version: 1.0 X-Original-Sender: christian.storm@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of christian.storm@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=christian.storm@siemens.com Precedence: list Mailing-list: list swupdate@googlegroups.com; contact swupdate+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: swupdate@googlegroups.com X-Google-Group-Id: 605343134186 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , Introduce a compat.h housing compatibility definitions and macros along the lines of commit 7b49b8d having introduced a compatibility mechanism for Lua. First use case (and motivation) is the support for musl (https://www.musl-libc.org/) which doesn't bother to provide char *strndupa(const char *s, size_t n) Reviewed-by: Stefano Babic Reported-by: Jörg Krause Signed-off-by: Christian Storm --- include/compat.h | 24 ++++++++++++++++++++++++ include/util.h | 1 + ipc/network_ipc.c | 1 + 3 files changed, 26 insertions(+) create mode 100644 include/compat.h diff --git a/include/compat.h b/include/compat.h new file mode 100644 index 0000000..29d7af1 --- /dev/null +++ b/include/compat.h @@ -0,0 +1,24 @@ +/* + * Author: Christian Storm + * Copyright (C) 2018, Siemens AG + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#pragma once + +#ifndef strndupa +/* + * Define char *strndupa(const char *s, size_t n) + * for, e.g., musl (https://www.musl-libc.org/) + * which does not bother to implement this function. + */ +#define strndupa(s, n) \ + (__extension__({ \ + const char *__in = (s); \ + size_t __len = strnlen(__in, (n)) + 1; \ + char *__out = (char *)alloca(__len); \ + __out[__len - 1] = '\0'; \ + (char *)memcpy(__out, __in, __len - 1); \ + })) +#endif diff --git a/include/util.h b/include/util.h index 920701f..777626b 100644 --- a/include/util.h +++ b/include/util.h @@ -25,6 +25,7 @@ #include #include "swupdate.h" #include "swupdate_status.h" +#include "compat.h" #define NOTIFY_BUF_SIZE 2048 #define ENOMEM_ASPRINTF -1 diff --git a/ipc/network_ipc.c b/ipc/network_ipc.c index 3d4c730..6c5107e 100644 --- a/ipc/network_ipc.c +++ b/ipc/network_ipc.c @@ -34,6 +34,7 @@ #include #include "network_ipc.h" +#include "compat.h" #ifdef CONFIG_SOCKET_CTRL_PATH static char* SOCKET_CTRL_PATH = (char*)CONFIG_SOCKET_CTRL_PATH;