From patchwork Mon Jun 17 07:29:04 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dominique Martinet X-Patchwork-Id: 1948524 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=Cmo6eHE/; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com (client-ip=2001:4860:4864:20::3c; helo=mail-oa1-x3c.google.com; envelope-from=swupdate+bncbcwivbv7sugrbs6lx6zqmgqehrvefhy@googlegroups.com; receiver=patchwork.ozlabs.org) Received: from mail-oa1-x3c.google.com (mail-oa1-x3c.google.com [IPv6:2001:4860:4864:20::3c]) (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 4W2hNG60j3z20fF for ; Mon, 17 Jun 2024 17:29:34 +1000 (AEST) Received: by mail-oa1-x3c.google.com with SMTP id 586e51a60fabf-254dfc90aadsf5333852fac.1 for ; Mon, 17 Jun 2024 00:29:34 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1718609356; cv=pass; d=google.com; s=arc-20160816; b=LkG+jDSTMqqq46QVdStLlQQmVwPiuXPf8RZHpga4pAHaLyC41UzB257rphkoM8mEiU KLs9kZsYmFlPJ6Ole4aOByaOk7dhTf1349GfumbFc4cKaIO97er89dUJ2ujhc74X+10e bzo8zDZDDG0LnJjyfT3RaaIQjIpI0Du0J89ZrQZblR2Riyb4ish31mWQGofcdKN7EHGJ HJmsfJzje//6HryutY4QjVd1nVKax2zLKpxkjBpp+JBjPAlpKzyPuCoVQQG2fdgsWnrW qrNI5UmH4Wph+YE8ocs1GxWarTGh4FEZWGLvqEEcjqK8mw8aEdIiOJ61kqZxeQEI54AW 13EA== 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; bh=Up1uTVwmgy8Q6RIC6VdyG01mKR1JfodRNQRX8owU+8Q=; fh=pzZm1JUlYDwHgK9SaIJnB9dOBfxP6Wuno8spH69BLuo=; b=roWFxnhQnBNYMt2tqDjRYwSD2S4PUSUqGVBQlTLR93/y0sjiUZARDUHNzWr66O4LF8 uAvvLWDzpm5RfL1ZZZS2B83gGcSmFOHujRNnKIhwdQz5eV9k8CC0kW4zJuUbpR49KbF1 882GybXVG7iL7OxXlDYmOSTmgbwjMnriYcN7HkP5Oou/fYx7OPmpd1Xi8L+rSNMZdPbT osEaR7GhYFcvyN9mVlJmhd6CDbtOBJlBQcnY4LqpsGQ3ZLKKJgesfo5eMxBpseezXt2u 3xd5mQg1PPplsAFir049q9ew0GE0XZIJ1HS3V31sbSEZMgW80AAE0/1dV76H45WGhGsw SvVQ==; darn=patchwork.ozlabs.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@atmark-techno.com header.s=gw2_bookworm header.b=C+LdnVP4; dkim=pass header.i=@atmark-techno.com header.s=google header.b=Q7bjZi8K; spf=pass (google.com: domain of dominique.martinet@atmark-techno.com designates 35.74.137.57 as permitted sender) smtp.mailfrom=dominique.martinet@atmark-techno.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=atmark-techno.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1718609356; x=1719214156; 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=Up1uTVwmgy8Q6RIC6VdyG01mKR1JfodRNQRX8owU+8Q=; b=Cmo6eHE/JKeUemqEvDlLwN+L/lJpHavtNjUW5IXf9PYzR9Mrj3zBQLwyw1t50XGp2L 2ey0uJ23K4B3SB06cHJAsIIr0cg7fsvBFx5IeEHTTpDAr1skjCpVscgV7QQFubhiVmV7 R3iyX+8c0tzqaaZyIdHIFbarJ0GVhBx3yB6+on7tSD/8VP0ZCrsfVyFv7WR98Cl6Hn1p C88MfzMuI/j1ea+HWHskkwejXwKRCn4yw2AdGF8F+eLRRhtETxoPZ/vGah7GDZIKTr9G HhD6vRXd4+esNT4D2My7T8MR9MiTv+vLxFRoUXueAe6AXCnUv51q5DBdthaRSa7UKwLF DCdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718609356; x=1719214156; 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=Up1uTVwmgy8Q6RIC6VdyG01mKR1JfodRNQRX8owU+8Q=; b=KSJyGECHz4ElSFzCzYJNyp6EOCbcgfmyqieSInW6oedpau4weEJ7tWXxWvSNQEXXXH jl3T6JPRUJiGznBsnnlaW8h5WS+Q3iGRZTge7vH8iC5dl1rFquROtnLqcmubfj0t1n9W WwxZQdPfzZ2hVwlFdN5yB3MIDZWFSd30rGyBjjpkqzjScf3tOvdiKxhzUQh9+RnF+mwr P9Nf/dVHZ5BJV1oGSgb491R/YveRLY5R3vOZv0ehnj8fwpdN1iG6VSbGXd2V1wM2OEJ4 e0R0+FJmeUIADxM6QH+53S4RVu2DOUrnnVnEC7fxPYgAbJgrt1U8qPfP/6a2Wk5lBQsz Rkdw== Sender: swupdate@googlegroups.com X-Forwarded-Encrypted: i=2; AJvYcCVa+HXGrdknG5nhZ4jRJ+JZq9nNPe/relemaP6fgN3EjP6ixHUrdD1AkGD+Jp1/KBxvZLqJfS6+uVgFCJDNR9UCZJjc6PdWDd+9IBEKew== X-Gm-Message-State: AOJu0Yxu1W6GEBJhMlWQ9xrAb72Y0JD4/WA6DbdK9xbTTWTfe/aJX78C wAXCTHZWkuhHfI8ZDP5sQI/lbIw2hOTGEOFQidAaK/4T4OxFHAFX X-Google-Smtp-Source: AGHT+IGbExUTUi2kr+bAtYHVOezVB3Jla7yvPPyi1TUB3ZJ1tkJAgcD8k/O4R939Bw2VhCCbSUTYMw== X-Received: by 2002:a05:6870:1687:b0:254:a8ec:306e with SMTP id 586e51a60fabf-2584288e481mr11362531fac.7.1718609355847; Mon, 17 Jun 2024 00:29:15 -0700 (PDT) X-BeenThere: swupdate@googlegroups.com Received: by 2002:a05:6870:c6a3:b0:24f:fada:1780 with SMTP id 586e51a60fabf-2552bbe8b5els2759425fac.1.-pod-prod-08-us; Mon, 17 Jun 2024 00:29:14 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXbTH8LE5D+XnLS5ll/BWMUqnGCvWIZQWWvzC7aF0a14+nuFvImFZhSsi/VlPlZHw54gLXStW7vzL0VE+kSBWhTdC1uYHpwzgBt X-Received: by 2002:a05:6870:14cf:b0:254:92a5:fa44 with SMTP id 586e51a60fabf-2584288e45emr10814803fac.10.1718609354598; Mon, 17 Jun 2024 00:29:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1718609354; cv=none; d=google.com; s=arc-20160816; b=PBP3F4UnATgdJkfzB+IJXK31FCLpHNN8BKo7k42XyLowtmyitZkgZqisXCfhpHyyEa d8vGfCQhoonB230usggIEY/aBQ/P8JhpWEP9sTc0Pbq+GGLf5D3oYVfdcQUINekP6CCn AsNO7FoUdIdRDKd7RhNcTlFM3pr0H6DxtaGmlGN2QlMopN8rGVpMLQGmou4mgvPq/n5b PkB78gcaRyLrYi+QKvZIZcif1yHjRbxvHM7SzMSnpXjIkkq16Cn3vee7a3vBbueFraBt cFaI56jgrHhXrGvedM6RJ2hOdDQh9dd+42Ul0apXlMtDrYogmGTTXivKw1fFgesJHjfq l8sg== 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:dkim-signature; bh=6cAglcd5Fda5QMHtnwgL/R6GMQPZXqiZScKCrA3wqks=; fh=qJTfuJd+VnhouonnIWk6WYt6Rb3rKS4zF7uMnLyxXTk=; b=NWn8cU+vnP60d53CuMEDEk4AGzA0O4BiRTZ/XRgwNqKMPQh6ShNBOKWnFuH54D2NIC vVOaEnFKDQ+8no2wa4JJ8fsXJY3iX1uVGBwDGsTPi0dtdWtFfZmygQhWEJfILNZbvy+4 jQqZQ6dGnVCBy33CrSCjVlJKoeQvLd6aWVSrockPBszvjYa/8Zk/5dOpQ9i3AR5BUPmv HuW9I/oKcBE18CkN7uVRYDv2axnw6bWAcC+eAjXAEywXrbc/E7qUIfXembHHzvDZLKCF 0NOlWl4prcT4KO3XJSF8xCJS3ryVgZW1b5K2vEe/bqEvMK0CPoIbNmP75lFDTK7Rqsnr uVwg==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@atmark-techno.com header.s=gw2_bookworm header.b=C+LdnVP4; dkim=pass header.i=@atmark-techno.com header.s=google header.b=Q7bjZi8K; spf=pass (google.com: domain of dominique.martinet@atmark-techno.com designates 35.74.137.57 as permitted sender) smtp.mailfrom=dominique.martinet@atmark-techno.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=atmark-techno.com Received: from gw2.atmark-techno.com (gw2.atmark-techno.com. [35.74.137.57]) by gmr-mx.google.com with ESMTPS id d2e1a72fcca58-705cc775575si338909b3a.0.2024.06.17.00.29.14 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Jun 2024 00:29:14 -0700 (PDT) Received-SPF: pass (google.com: domain of dominique.martinet@atmark-techno.com designates 35.74.137.57 as permitted sender) client-ip=35.74.137.57; Received: from gw2.atmark-techno.com (localhost [127.0.0.1]) by gw2.atmark-techno.com (Postfix) with ESMTP id E642796A for ; Mon, 17 Jun 2024 16:29:12 +0900 (JST) Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by gw2.atmark-techno.com (Postfix) with ESMTPS id 441C54AB for ; Mon, 17 Jun 2024 16:29:12 +0900 (JST) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-1f736a80b97so35410715ad.0 for ; Mon, 17 Jun 2024 00:29:12 -0700 (PDT) X-Forwarded-Encrypted: i=1; AJvYcCW8rM14PPNpdJ/ghC5lgIaLj9rnzoAa4VYLW6q1BU1yWBncBFbgAwDqM/FajkuzDYkxPyn2wnXPUf5IH46DNstptBF4EItdcHaW X-Received: by 2002:a17:902:cec6:b0:1f7:36a8:671d with SMTP id d9443c01a7336-1f8625cf720mr124935345ad.25.1718609351162; Mon, 17 Jun 2024 00:29:11 -0700 (PDT) X-Received: by 2002:a17:902:cec6:b0:1f7:36a8:671d with SMTP id d9443c01a7336-1f8625cf720mr124935205ad.25.1718609350788; Mon, 17 Jun 2024 00:29:10 -0700 (PDT) Received: from pc-0182.atmarktech (76.125.194.35.bc.googleusercontent.com. [35.194.125.76]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f855e55c8bsm74065695ad.48.2024.06.17.00.29.10 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 17 Jun 2024 00:29:10 -0700 (PDT) Received: from [::1] (helo=pc-0182.atmark.tech) by pc-0182.atmarktech with esmtp (Exim 4.96) (envelope-from ) id 1sJ6nd-009Y52-1f; Mon, 17 Jun 2024 16:29:09 +0900 From: Dominique Martinet To: stefano.babic@swupdate.org, swupdate@googlegroups.com Cc: Dominique Martinet Subject: [swupdate] [PATCH 3/4] copyfile cleanup: use copyimage when we can Date: Mon, 17 Jun 2024 16:29:04 +0900 Message-Id: <20240617072905.2275940-4-dominique.martinet@atmark-techno.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240617072905.2275940-1-dominique.martinet@atmark-techno.com> References: <20240617072905.2275940-1-dominique.martinet@atmark-techno.com> MIME-Version: 1.0 X-Original-Sender: dominique.martinet@atmark-techno.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@atmark-techno.com header.s=gw2_bookworm header.b=C+LdnVP4; dkim=pass header.i=@atmark-techno.com header.s=google header.b=Q7bjZi8K; spf=pass (google.com: domain of dominique.martinet@atmark-techno.com designates 35.74.137.57 as permitted sender) smtp.mailfrom=dominique.martinet@atmark-techno.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=atmark-techno.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: , There were a few handlers manually passing all the fields required for copyimage, use copyimage instead. lua was using img.checksum as a secondary hash, preserve this functionality by remembering the old img.checksum instead of passing a different checksum pointer. There is no intended functional change. Signed-off-by: Dominique Martinet Reviewed-by: Michael Glembotzki Reviewed-by: Stefano Babic --- corelib/lua_interface.c | 38 ++++++++------------------------------ handlers/delta_handler.c | 13 +------------ handlers/rdiff_handler.c | 13 +------------ 3 files changed, 10 insertions(+), 54 deletions(-) diff --git a/corelib/lua_interface.c b/corelib/lua_interface.c index 03b74aed1cf2..10af0760c5f9 100644 --- a/corelib/lua_interface.c +++ b/corelib/lua_interface.c @@ -388,7 +388,7 @@ static int l_copy2file(lua_State *L) } struct img_type img = {}; - uint32_t checksum = 0; + uint32_t image_checksum = img.checksum; table2image(L, &img); if (check_same_file(img.fdin, fdout)) { @@ -397,18 +397,7 @@ static int l_copy2file(lua_State *L) lua_pushstring(L, "Output file path is same as input file temporary path"); goto copyfile_exit; } - int ret = copyfile(img.fdin, - &fdout, - img.size, - (unsigned long *)&img.offset, - img.seek, - 0, /* no skip */ - img.compressed, - &checksum, - img.sha256, - img.is_encrypted, - img.ivt_ascii, - NULL); + int ret = copyimage(&fdout, &img, NULL /* default write callback */); update_table(L, &img); lua_pop(L, 1); @@ -417,10 +406,10 @@ static int l_copy2file(lua_State *L) lua_pushstring(L, strerror(errno)); goto copyfile_exit; } - if ((img.checksum != 0) && (checksum != img.checksum)) { + if ((image_checksum != 0) && (image_checksum != img.checksum)) { lua_pushinteger(L, -1); lua_pushfstring(L, "Checksums WRONG! Computed 0x%d, should be 0x%d\n", - checksum, img.checksum); + img.checksum, image_checksum); goto copyfile_exit; } @@ -463,24 +452,13 @@ static int l_istream_read(lua_State* L) luaL_checktype(L, 2, LUA_TFUNCTION); struct img_type img = {}; - uint32_t checksum = 0; + uint32_t image_checksum = img.checksum; lua_pushvalue(L, 1); table2image(L, &img); lua_pop(L, 1); - int ret = copyfile(img.fdin, - L, - img.size, - (unsigned long *)&img.offset, - img.seek, - 0, /* no skip */ - img.compressed, - &checksum, - img.sha256, - img.is_encrypted, - img.ivt_ascii, - istream_read_callback); + int ret = copyimage(L, &img, istream_read_callback); lua_pop(L, 1); update_table(L, &img); @@ -491,10 +469,10 @@ static int l_istream_read(lua_State* L) lua_pushstring(L, strerror(errno)); return 2; } - if ((img.checksum != 0) && (checksum != img.checksum)) { + if ((image_checksum != 0) && (image_checksum != img.checksum)) { lua_pushinteger(L, -1); lua_pushfstring(L, "Checksums WRONG! Computed 0x%d, should be 0x%d\n", - checksum, img.checksum); + img.checksum, image_checksum); return 2; } lua_pushinteger(L, 0); diff --git a/handlers/delta_handler.c b/handlers/delta_handler.c index 8e7faa0ead02..5ec243ee01d9 100644 --- a/handlers/delta_handler.c +++ b/handlers/delta_handler.c @@ -999,18 +999,7 @@ static int install_delta(struct img_type *img, goto cleanup; } - ret = copyfile(img->fdin, - &mem_fd, - img->size, - (unsigned long *)&img->offset, - img->seek, - 0, - img->compressed, - &img->checksum, - img->sha256, - img->is_encrypted, - img->ivt_ascii, - NULL); + ret = copyimage(&mem_fd, img, NULL /* default write callback */); if (ret != 0) { ERROR("Error %d copying zchunk header, aborting.", ret); diff --git a/handlers/rdiff_handler.c b/handlers/rdiff_handler.c index e01a127bce50..3b01519ce80a 100644 --- a/handlers/rdiff_handler.c +++ b/handlers/rdiff_handler.c @@ -337,18 +337,7 @@ static int apply_rdiff_patch(struct img_type *img, rs_trace_to(rdiff_log); rdiff_state.job = rs_patch_begin(base_file_read_cb, rdiff_state.base_file); - ret = copyfile(img->fdin, - &rdiff_state, - img->size, - (unsigned long *)&img->offset, - img->seek, - 0, /* no skip */ - img->compressed, - &img->checksum, - img->sha256, - img->is_encrypted, - img->ivt_ascii, - apply_rdiff_chunk_cb); + ret = copyimage(&rdiff_state, img, apply_rdiff_chunk_cb); if (ret != 0) { ERROR("Error %d running rdiff job, aborting.", ret); goto cleanup;