From patchwork Wed Oct 28 18:28:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sava Jakovljev X-Patchwork-Id: 1389370 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com (client-ip=2a00:1450:4864:20::538; helo=mail-ed1-x538.google.com; envelope-from=swupdate+bncbaabbwpq436akgqewmifrqq@googlegroups.com; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=teufel.de Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.a=rsa-sha256 header.s=20161025 header.b=pdEieCuW; dkim-atps=neutral Received: from mail-ed1-x538.google.com (mail-ed1-x538.google.com [IPv6:2a00:1450:4864:20::538]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CLxsv1FLpz9sVh for ; Thu, 29 Oct 2020 05:28:48 +1100 (AEDT) Received: by mail-ed1-x538.google.com with SMTP id bc27sf125182edb.18 for ; Wed, 28 Oct 2020 11:28:48 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1603909722; cv=pass; d=google.com; s=arc-20160816; b=nGVeS3upkZAjjioqFN7XYBY79XGdgh1HjWGyD5R72UghvdN9qOX1K7FMoSkF6bxBRF Hp+hs/QSH1Hv4TAv0Yf0cip/yWDUWkMiniEqwLXg1qxPXrpNxDOn9SEZ6pPOzGxkjWjn WDHmhk5FkXkhFdkJlL5jcDf+e3sq88M91YR6CKsk1V/xGZp9Afv64gzoHY/d7tG+hqpe iByQjT0V1oH5Ck5QdEx98tr9th6aTfI+0uF6uhhdNnUGfKUUKpkjcDL0/dOHJajlZS7x TLASu2PgcRiEiZLmbvn2lL1dag1JAukaYdKNSfQT9spYKtn+LR9Rf9K5VrmfMUbfVCZB Tswg== 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:message-id:date :subject:cc:to:from:sender:dkim-signature; bh=hR0Vq3YFMT/ahwmj40DMs2g6MparEbbNOcgVRZkY6PI=; b=EgviZpi5vvo0WXbjEmgParRQ3VZQlzsPS+sF7ixpXfzlmpKW5IkmBYj4z1DWXukMUW 3EuHfb1EWB41wl5Xwz8i0WJ18X/sIop2NZyCEgURKWRu1prMG1Tn0ks/mBCiK/Zbccmo BlWVa6x86/wQijqZ81Pf+9J3zhaL14fbI8NjSHiT3btLCzpxmIMabfFdggX94TGeTxRA i8xFFHGriDzozhmqXrNkceCmkdmlzPL8F4O4dXCL6sq4fuzyY+Wjsy02jj5Bjxl3Z+nY HXim93wZA96uuQpTb9nf38Q9c7fJmGSDPCRucmiXqXowxN8ZaF6EniubCIT01iYROAlu LjOA== ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=pass (google.com: domain of sava.jakovljev@teufel.de designates 94.100.136.178 as permitted sender) smtp.mailfrom=sava.jakovljev@teufel.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:mime-version :x-original-sender:x-original-authentication-results:precedence :mailing-list:list-id:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=hR0Vq3YFMT/ahwmj40DMs2g6MparEbbNOcgVRZkY6PI=; b=pdEieCuWE8JcDVXkiGILCIhi7X3pW8xJCZnSDZRV5fCVCc88mlIBTmyuephuef+9ng 9vLfo+tULV0qm7hwLaDM7jSKTArYCayc/5O/NMdMKw4/kBKtxEZWdG85cOgoG562tuNZ 0W6RMaDy1hxoLQDshtUuFQoEbd7am8aB12dxIlugtsoDlJZQuycp/EdtZRAtMQ9QgIbX wD8SIAOWzRBpCUZhc+gNIO3lLUwU+Q/zKef+l+KhQODhpOf/OynFVrlzwV93g4pMLiUs 1D2ES1NrqpGiCROGtmL799OyOXfWu1SCHZiLlojxiKdPonpjdsOBMogx8hc7B2CbsspR 8reA== 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 :mime-version: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=hR0Vq3YFMT/ahwmj40DMs2g6MparEbbNOcgVRZkY6PI=; b=Bozr6kDPL3vm1XzdJFdXVSR9k/o0/1f81hNeeCxKwfKibWNCgzllA1A2shiMkQ8Uhg 2bklzBeZ0FcUG+K9Iy09KBl6fHtSBlk8V3nb/Si6+ofa+Eo0VoXJ52xfP+cb97/pYayr bwyzyJnOBaHanTI3Mp0BYyc7hBzzWer4TRIoDIG5SpVt9gBUZ72gbO4P03TxgoehAnpf Pg43Wkc88m5jpj+31uApKoIZy3V16MSSrXPHaTpifuf5uiwy0VvF1UqBX5BMDfgqp1j8 bLaRUY6HkFEkI6R4scXpjjsREMO7V0gdek9BkUFKi5o+AeXChHTQ6ZxvurzCb6ZbUFuy +tyA== Sender: swupdate@googlegroups.com X-Gm-Message-State: AOAM533qC3pCRkPEMDoasKu2pMNunwehkJkFdpZyZYBNAPXKxPzr1WSx Tk9f8ovWCSqK/kFKX5bxxjg= X-Google-Smtp-Source: ABdhPJyFhU7DzxCJXYPBr1qCzwi6VFqq+lVDby3eHHZhDt7jM52xprn/UfRwIIutHeIV0PtewloCmw== X-Received: by 2002:aa7:ccc8:: with SMTP id y8mr171691edt.325.1603909721834; Wed, 28 Oct 2020 11:28:41 -0700 (PDT) X-BeenThere: swupdate@googlegroups.com Received: by 2002:a05:6402:1d3c:: with SMTP id dh28ls143942edb.0.gmail; Wed, 28 Oct 2020 11:28:40 -0700 (PDT) X-Received: by 2002:a05:6402:48d:: with SMTP id k13mr229766edv.92.1603909720846; Wed, 28 Oct 2020 11:28:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603909720; cv=none; d=google.com; s=arc-20160816; b=aYfZ3W/V6D71L72KK8/l7tuPKbu23FY20WY8SxPgujedlhQANdho9/m3hCZlWWER8e 3XewKwp8vhZDGeH9rrUpes0u5PsmNR/M47P4ihNYK+PsXR48kPYGI/xclnUapyMDiEp1 bAIGk//p6e2Vd9Vn2jYy1DHOk8nlLC4RVhiegpwwV6xYj1L5qLW9BuY5O+OlAOKZCGGW AREgrHahWw9i/GEoiYaoHtS+0KzFpCGe6kF0hi48kVyC5DKUgyurHtRj/V14f/RkZFsn c38oqBCDocAoxecPic3jtDXgp9C+5jBugxTVX975YGEBwuTxlf22F8Ub/GGvZa4aNK60 p+Vg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from; bh=TOamRuXLSBd4tlp48lGSR/7lwfmAOBJVo2aH1SchT2Q=; b=jcn1bgYcPqrVkbxvhdTi98BTI9RrM6anAXSBfLlBhpeAoSTJkbafzPtdXiBRvIMXgN z5k0xkIH/22mCqGUfXD/uVPtXXQJED+cwV1yQwI5CVeTsUSOKHGgya9K9IJCrDVDJl4z xUgUEahAtBQKSd2co60krS7DSvhCTIR56iujpUW0gfHRxzY7beE2X7/1Z8RaFjSrxDYn 8iFRiDMz5yfiXXvBGxgX8lS3KHVDW2wfUx0yJ4iyRtmcaJov5X26Ikk4oA+2DzZuE/6Q fuCFuDOSIrxPPSBMHxApyZF1b1e0w68jnFXgBR12qc/jiRtYdVN2e5xcc9Adj6647pWP VKyg== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of sava.jakovljev@teufel.de designates 94.100.136.178 as permitted sender) smtp.mailfrom=sava.jakovljev@teufel.de Received: from mx-relay78-hz2.antispameurope.com (mx-relay78-hz2.antispameurope.com. [94.100.136.178]) by gmr-mx.google.com with ESMTPS id n7si9904edy.3.2020.10.28.11.28.40 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 28 Oct 2020 11:28:40 -0700 (PDT) Received-SPF: pass (google.com: domain of sava.jakovljev@teufel.de designates 94.100.136.178 as permitted sender) client-ip=94.100.136.178; Received: from unknown ([212.91.255.190]) by mx-relay78-hz2.antispameurope.com; Wed, 28 Oct 2020 19:28:40 +0100 From: Sava Jakovljev To: CC: Sava Jakovljev Subject: [swupdate] [PATCH] core: Fix handling of upgrade state Date: Wed, 28 Oct 2020 19:28:20 +0100 Message-ID: <20201028182820.141279-1-sava.jakovljev@teufel.de> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 X-Originating-IP: [10.10.25.44] X-ClientProxiedBy: DNS-EX-01.teufel.local (10.10.0.80) To DNS-EX-01.teufel.local (10.10.0.80) X-C2ProcessedOrg: b93e13a0-e8da-4ba4-97b8-f14375b21c41 X-cloud-security-sender: sava.jakovljev@teufel.de X-cloud-security-recipient: swupdate@googlegroups.com X-cloud-security-Virusscan: CLEAN X-cloud-security-disclaimer: This E-Mail was scanned by E-Mailservice on mx-relay78-hz2.antispameurope.com with AE29A520D42 X-cloud-security-connect: unknown[212.91.255.190], TLS=1, IP=212.91.255.190 X-cloud-security: scantime:.3994 X-Original-Sender: sava.jakovljev@teufel.de X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of sava.jakovljev@teufel.de designates 94.100.136.178 as permitted sender) smtp.mailfrom=sava.jakovljev@teufel.de 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: , * get_state_string does a dangerous cast to char* which can later be derefenced, which can lead to SIGSEG - thus return NULL and make the caller check. Signed-off-by: Sava Jakovljev --- core/state.c | 3 ++- include/state.h | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/core/state.c b/core/state.c index e1ce5fe..4302e1e 100644 --- a/core/state.c +++ b/core/state.c @@ -60,7 +60,8 @@ server_op_res_t save_state(char *key, update_state_t value) server_op_res_t save_state_string(char *key, update_state_t value) { - return do_save_state(key, get_state_string(value)); + char* placeholder = get_state_string(value); + return do_save_state(key, placeholder == NULL ? &value : placeholder); } server_op_res_t read_state(char *key, update_state_t *value) diff --git a/include/state.h b/include/state.h index e6c6cfa..abdd53f 100644 --- a/include/state.h +++ b/include/state.h @@ -54,7 +54,7 @@ static inline char* get_state_string(update_state_t state) { case STATE_FAILED: return (char*)"failed"; default: break; } - return (char*)state; + return NULL; } server_op_res_t save_state(char *key, update_state_t value);