From patchwork Tue Jul 9 11:08:39 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Glembotzki X-Patchwork-Id: 1958320 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.a=rsa-sha256 header.s=20230601 header.b=K7chKyl9; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=Z6j6fslj; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com (client-ip=2a00:1450:4864:20::53d; helo=mail-ed1-x53d.google.com; envelope-from=swupdate+bncbdy5juxlviebbrfxws2amgqedvk7icy@googlegroups.com; receiver=patchwork.ozlabs.org) Received: from mail-ed1-x53d.google.com (mail-ed1-x53d.google.com [IPv6:2a00:1450:4864:20::53d]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4WJJLd2WQYz1ySg for ; Tue, 9 Jul 2024 21:15:21 +1000 (AEST) Received: by mail-ed1-x53d.google.com with SMTP id 4fb4d7f45d1cf-58b92b79a46sf7780286a12.0 for ; Tue, 09 Jul 2024 04:15:21 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1720523718; cv=pass; d=google.com; s=arc-20160816; b=E61YkP9iYr9DnOaYZMX6x2pEpXnELbr/5luh7dsgGd9bp1yHi5M7mDzLsYEurvj0nk aDxHf1sR2GfE3mxDd0AAJXP1NWwXzhHc6VMmYVvEzWZZs7k+ih1VVc3pbnHMTuz0xMtX cLCIrAO6qWiR5TpZNhUfSdq6PRzVapjz1vUOZyVx6RBhTJHz5hSq1/yspRid91iIP5j2 6Z8JSrQoLq8Q9Ow0V6uWsINT2XLpuuC0uwJNBo6YXN3/+1ldS4pHXpMq/BTabMkKtpV7 Pb8R/NC7gr9kIJZEEuhac/qNWYB1uEAX//AdEFw2qXsuBwdvvepX6GaKQRK5QmjCjI7k BAbg== 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:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:dkim-signature :dkim-signature; bh=S+jIEG9rl0FMf3S2NmbqvhhZQWlC3l//YsElzIzLSjE=; fh=Aumd8xQBkpdkY65opYwklYj+M8BJ53ug/Utqo2andic=; b=T+OFeRJ/MxfA10Ri23SAyvBIrBnepCf8ldU9FGe3MgT2MGH7jBMYMMjc7Mu5fA2Ib4 mSW5ao8kRKA32DPVaXhBTw5O9VsOWjASpCW4jlUJE7jeBX9bdmZGHejPexvc+kujmJB8 UANioRa5YxFNQdR7vye1736X3IDrLP0zBsotwlkFV97yV+96rgJpm9q3SAKnqIkyaTR3 hoTntqzhLdJJHom+0QEbdc1SSogLDsPHAQmdGELFMFCn3ju+uWo90g/IbtSAIzfH7x/3 Sbuc3VcPeX4+6FsbA2OTsGMuirYmtX3VYa1iOgmWFdhhpzHLsQmE8cwWZ5Y7SUfeIh8M J7+w==; darn=patchwork.ozlabs.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=h3WdUeZA; spf=pass (google.com: domain of m.glembo@gmail.com designates 2a00:1450:4864:20::634 as permitted sender) smtp.mailfrom=m.glembo@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1720523718; x=1721128518; darn=patchwork.ozlabs.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:sender:from:to:cc:subject:date:message-id :reply-to; bh=S+jIEG9rl0FMf3S2NmbqvhhZQWlC3l//YsElzIzLSjE=; b=K7chKyl91bygeOCZyZtYfKsCdObuigU6PM37aklMBV+JNMc2C3AIQKAJCy9AbOM5u6 rvu7ENjN22hT0DgDZIY48jPVVfyJXOoA/TUjDdk5hMr8BN4e7G8CXYgnqAGMYt2mEWa+ KlKjp/3rQYWF3TnDntcvnqnWvLPQu92wH12ZLac9PP0jvNISEqyXVwYxoEY4X0jmlr7R va/tjGGiRLHOa2pHVrakipwsxq/iB5FY2UoFRddfoKkssyB5T4nAP1e0BOujD+OKkSyN YreLtHZhbN404k7Fbz8dMs5nTznRLcvezilkr2Hk9LhHiEqrVj7o8xTWUdTtXyJw7CYp iM0Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1720523718; x=1721128518; darn=patchwork.ozlabs.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=S+jIEG9rl0FMf3S2NmbqvhhZQWlC3l//YsElzIzLSjE=; b=Z6j6fsljcItqhOfUPG+MADQ7SYP38l+Zv94IXaL+3GkGlji6vEqZhTD6lLeWtZJ2Z8 w5X9GMWXaZvkfNa5YZj805rvxhilHUU/L5Awt0a4yNmeejJnl5UBOwlDamTD4jcowwLn /m2LmCvpJEByO5KKMaAXd35AxG9F67j0GTGursN50QruI5BZ8IBFsLOQIokEIZ5HJ59h zr6kSHiyYNEK42RLXYZ34TcVIYV0wXvRVhrivnNAcjbYAWt3frfbVZjrWdKEyjmQcMHg Pcs+uojULW0vtVjgkzJHTDVrkIO7Q517/9ChtdCApC9JO2bbhLBtO5KT72ihXZ4X91u1 kJYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720523718; x=1721128518; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :x-beenthere:x-gm-message-state:sender:from:to:cc:subject:date :message-id:reply-to; bh=S+jIEG9rl0FMf3S2NmbqvhhZQWlC3l//YsElzIzLSjE=; b=WzO/xkGA5EcGvLIWy+Ns3icetZB9RdSz93GYFNq195i2WfD4nZl0R7dY1uMsMKZyML txNC/3WV3OLup7Jz4S4d0+kTFqtSgrYvFi38P6ciw2pAlEhQMja8Ylg9tEib5g1jLlIZ /Wve/6MsYbLffiGdmQduwOKsDvAZOczZCqKO2u26t2/2v1COYo4kPU3AqyN41v3pMg3M YYk5+n/btX6hQvP2EgobfgCN1NNSpnO9Cdgz8bMcSlr6nD11H2ZqtQDkvZEFNtoWkjcn QI0WLze3U0wavXQlGWy+8U2xwXiORch4xYvE5zxpTL0KEM3MTsRG2h/NNvP6mQxm6sfm 9hRg== Sender: swupdate@googlegroups.com X-Forwarded-Encrypted: i=2; AJvYcCW77Kry0sRaz8HWok94pNVEUZlfUq+1ITIAoty0LmIhsoZhOm+9HjXvsXHNaGfxyGwrr+/CkWEyXX1CZGCNOKFqkS39gp+OEs50HK+Aag== X-Gm-Message-State: AOJu0YzWAxXBm6zYACnIAauPY5vyYel7nZPLxMhecoV6slSLE1LEGzNQ Ryqb8lMTuMQCVTMIBowXDgq6+8r/CmzvaAqZs+QhHxC2oVY+d15V X-Google-Smtp-Source: AGHT+IHMdmUMTRS7UaH9uFSacUH0sDKVw9f3OPAGY9amnjqXr5IV16hc/tkWCzDpaGuTMT1t/ZhesQ== X-Received: by 2002:a05:6402:214d:b0:58b:2cd9:8373 with SMTP id 4fb4d7f45d1cf-594dca8f95cmr1417581a12.8.1720523717686; Tue, 09 Jul 2024 04:15:17 -0700 (PDT) X-BeenThere: swupdate@googlegroups.com Received: by 2002:a05:6402:1c0b:b0:583:9e8e:cd8c with SMTP id 4fb4d7f45d1cf-58e246f9d8bls3289271a12.1.-pod-prod-00-eu; Tue, 09 Jul 2024 04:15:15 -0700 (PDT) X-Received: by 2002:a17:906:fc0a:b0:a77:e0d7:5895 with SMTP id a640c23a62f3a-a780d3f249fmr119889966b.38.1720523714722; Tue, 09 Jul 2024 04:15:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1720523714; cv=none; d=google.com; s=arc-20160816; b=XFVYtERIQsk1PdeGpsJnlzw4pfzMM5VdEWFwqsCWqFW5ixHjjbkqfdFM0t9k+Hvt4l USVQ2bcab3M+Aq83DyPd/Zel7k9WwvsYFLkVPQI1UPmkeOzUDGgfJlh30AWRfnl3r7J2 TWDazlf7On5psa5ZU3yhgDE43WERyojRCAepnzf03GS9cHtOKD0y0qIo2b1GtbJ586MT ulvgkoGbKlRCoSEg5iPnERcC0tkS/zoQ4nIOb5L4JwIeLbDyEx53e2XkLjn0EdkxHsAb FqYxU3tIaJVmuyFzcc0kdDl4Wy4MTGqVtRym4Ty6OmcMrcpqttjV2pluH1dZha/8CSfe R/5A== 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:dkim-signature; bh=sJ6UmDPhjUyBL5PpGALKMi6wsPtB4jLbjruHPVc1T5w=; fh=zydHuzCQWrku2OPQyZfraJZFcOpEXLQ/YBcu3QNiBd0=; b=B208bncA2uWwjiqnq5tZvbexfhlXaXyTS8AK/x591zkw3oxYBJLzb3hfxNs7w3L9Q7 DgJDlttDzYsp0bKL7/PL1SgNH0g/uju6Sjkh3NnWCOzi1CMyeQkhNjyayDv6Y+w7IamF qWmUYvEyTgc1f7g49zpEL3tNXDedad2jjvHRhgowPYT68DJ/+vc2Gkw+gdD4umNCiAJF rBdz8nE950UQQG1vCsWXGTLOK/IUBtITggMdS/4g0E4mPmOwSuo/ci/BXZORmmYlk/V9 VR/HVxXl9KPg3uJhbsELLzX26sqXLZf3PrM+hCruWzUOzWcz0EvUjPJgGGQ7D4fXx4co ls9w==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=h3WdUeZA; spf=pass (google.com: domain of m.glembo@gmail.com designates 2a00:1450:4864:20::634 as permitted sender) smtp.mailfrom=m.glembo@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com. [2a00:1450:4864:20::634]) by gmr-mx.google.com with ESMTPS id a640c23a62f3a-a780a7c37ebsi3277366b.1.2024.07.09.04.15.14 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 09 Jul 2024 04:15:14 -0700 (PDT) Received-SPF: pass (google.com: domain of m.glembo@gmail.com designates 2a00:1450:4864:20::634 as permitted sender) client-ip=2a00:1450:4864:20::634; Received: by mail-ej1-x634.google.com with SMTP id a640c23a62f3a-a77c0b42a8fso722074866b.1 for ; Tue, 09 Jul 2024 04:15:14 -0700 (PDT) X-Received: by 2002:a17:906:3757:b0:a6f:6df5:a264 with SMTP id a640c23a62f3a-a780d20ed89mr145211966b.1.1720523713836; Tue, 09 Jul 2024 04:15:13 -0700 (PDT) Received: from PC-2635.irisgmbh.local (dslb-002-203-138-100.002.203.pools.vodafone-ip.de. [2.203.138.100]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a780a6bc8adsm70739166b.14.2024.07.09.04.15.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jul 2024 04:15:13 -0700 (PDT) From: Michael Glembotzki To: swupdate@googlegroups.com Cc: Michael Glembotzki Subject: [swupdate] [V3][PATCH 03/21] mongoose: Backport: bring mg_strdup() back from master Date: Tue, 9 Jul 2024 13:08:39 +0200 Message-ID: <20240709111440.8215-4-Michael.Glembotzki@iris-sensing.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240709111440.8215-1-Michael.Glembotzki@iris-sensing.com> References: <20240709111440.8215-1-Michael.Glembotzki@iris-sensing.com> MIME-Version: 1.0 X-Original-Sender: m.glembo@gmail.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=h3WdUeZA; spf=pass (google.com: domain of m.glembo@gmail.com designates 2a00:1450:4864:20::634 as permitted sender) smtp.mailfrom=m.glembo@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.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: , mg_strdup was deprecated in 7.14, but was brought back in ab75bfa6. mongoose rev-id: ab75bfa6e70a6985becf1eed912f93ba668be363 Signed-off-by: Michael Glembotzki --- mongoose/mongoose.c | 20 ++++++++++++++++---- mongoose/mongoose.h | 5 +++-- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/mongoose/mongoose.c b/mongoose/mongoose.c index 1768bf70..44066893 100644 --- a/mongoose/mongoose.c +++ b/mongoose/mongoose.c @@ -6633,8 +6633,7 @@ void mg_rpc_add(struct mg_rpc **head, struct mg_str method, void (*fn)(struct mg_rpc_req *), void *fn_data) { struct mg_rpc *rpc = (struct mg_rpc *) calloc(1, sizeof(*rpc)); if (rpc != NULL) { - rpc->method.buf = mg_mprintf("%.*s", method.len, method.buf); - rpc->method.len = method.len; + rpc->method = mg_strdup(method); rpc->fn = fn; rpc->fn_data = fn_data; rpc->next = *head, *head = rpc; @@ -8048,6 +8047,20 @@ int mg_casecmp(const char *s1, const char *s2) { return diff; } +struct mg_str mg_strdup(const struct mg_str s) { + struct mg_str r = {NULL, 0}; + if (s.len > 0 && s.buf != NULL) { + char *sc = (char *) calloc(1, s.len + 1); + if (sc != NULL) { + memcpy(sc, s.buf, s.len); + sc[s.len] = '\0'; + r.buf = sc; + r.len = s.len; + } + } + return r; +} + int mg_strcmp(const struct mg_str str1, const struct mg_str str2) { size_t i = 0; while (i < str1.len && i < str2.len) { @@ -10605,8 +10618,7 @@ static int mg_parse_pem(const struct mg_str pem, const struct mg_str label, const char *c; struct mg_str caps[5]; if (!mg_match(pem, mg_str("#-----BEGIN #-----#-----END #-----#"), caps)) { - der->buf = mg_mprintf("%.*s", pem.len, pem.buf); - der->len = pem.len; + *der = mg_strdup(pem); return 0; } if (mg_strcmp(caps[1], label) != 0 || mg_strcmp(caps[3], label) != 0) { diff --git a/mongoose/mongoose.h b/mongoose/mongoose.h index b59e2b06..6b71240f 100644 --- a/mongoose/mongoose.h +++ b/mongoose/mongoose.h @@ -186,7 +186,7 @@ extern "C" { #define calloc(a, b) mg_calloc(a, b) #define free(a) vPortFree(a) #define malloc(a) pvPortMalloc(a) -#define strdup(s) mg_mprintf("%s", s) +#define strdup(s) ((char *) mg_strdup(mg_str(s)).buf) // Re-route calloc/free to the FreeRTOS's functions, don't use stdlib static inline void *mg_calloc(size_t cnt, size_t size) { @@ -288,7 +288,7 @@ extern uint32_t rt_time_get(void); #include "cmsis_os2.h" // keep this include #endif -#define strdup(s) mg_mprintf("%s", s) +#define strdup(s) ((char *) mg_strdup(mg_str(s)).buf) #if defined(__ARMCC_VERSION) #define mode_t size_t @@ -861,6 +861,7 @@ struct mg_str mg_str_n(const char *s, size_t n); int mg_casecmp(const char *s1, const char *s2); int mg_strcmp(const struct mg_str str1, const struct mg_str str2); int mg_strcasecmp(const struct mg_str str1, const struct mg_str str2); +struct mg_str mg_strdup(const struct mg_str s); bool mg_match(struct mg_str str, struct mg_str pattern, struct mg_str *caps); bool mg_span(struct mg_str s, struct mg_str *a, struct mg_str *b, char delim);