Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wKA8f-000fqU-1V for pgsql-hackers@arkaria.postgresql.org; Tue, 05 May 2026 07:24:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wKA8e-00AXtc-18 for pgsql-hackers@arkaria.postgresql.org; Tue, 05 May 2026 07:24:16 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wKA8e-00AXtU-07 for pgsql-hackers@lists.postgresql.org; Tue, 05 May 2026 07:24:16 +0000 Received: from mail-pg1-x52f.google.com ([2607:f8b0:4864:20::52f]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wKA8c-00000000awM-04RS for pgsql-hackers@lists.postgresql.org; Tue, 05 May 2026 07:24:15 +0000 Received: by mail-pg1-x52f.google.com with SMTP id 41be03b00d2f7-c802803ac17so766067a12.1 for ; Tue, 05 May 2026 00:24:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1777965851; cv=none; d=google.com; s=arc-20240605; b=cUBMM/R+1hyX4cLElvTszXj/GZolTB/TihSLXYKrumn+KSMiEYSiukEg4qti6Uu6Mn jIjKsKVtNwqv/oG36gKS8inJbKLhhNeY0SeW3Dn164xGhlO1XuaS+goZN2V+5sw05ySF ylWWps/ajecTIFuFpz6q4Hx0kUffqU4Fd6YPG/XK6VaovUiEJFkWoSgIEgaWKqgX36zm pDqHzflbtuR/XKbQwMu9uc90D1Q/8dwijnf9yq6BF6M4ZXZ7Lo/4a4D6iAj73uy8K2yR O+RlE+JE86YaQ2oBt3oqrdyXcNldaMOWYxn0h76dWb0dbqrTTntPB6pXDd0cxQD/KqVx jkcw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=bnxVS6Kk9eTbDNgPrud4mpp1Bk5HJdFGlZt1cQMqU4M=; fh=NfSExoph5pWvbQJlIOlmfjYoBpfFMyLZjanqYHFFODI=; b=DBp1yx8kLVpJ7I1ns/pN9BQ7XF0PclfV1BCyMojM0KvsMQRQlzcLYoiBBjFInqCGH3 a2uwW3/I1WU4QOo0s4ht3XKbq3rvdrXLeGN2tmM9Vx+duyot9dqbkIaAZ5VHfY53VcLp 1zXAURQzzEHHB6rGHUyRy86P473cziNkmevgWLv+mUUWQWuBS+/kRUax5TvFV5p7sTno 3z8nbuwvqUYVEU3gLQtXiSZGVWc4KZqn8rYB3honY9rKMrTl5fOT35ETtJqsmAD1Oxrq Dnm49DfFpH0Ut4kvKYgyWGtpYkwdalu5+eDcXHPEiNd0qWf7w8wsnC+UhpkjDrdyP99X 8UKA==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777965851; x=1778570651; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=bnxVS6Kk9eTbDNgPrud4mpp1Bk5HJdFGlZt1cQMqU4M=; b=ZSDB7/4UJk+iVi18eTzVoH1DqYsfxpGwB56dD35JKfi7zDTVrWMMUvROjrE44o7Z2z FQjoVLhcV5feOJlJGHFlRMkjsnEOndYHsqrZlCaxCZ+CSG7D/UwPoxMTTLugkULmoQA8 biH8sLcxi4uYiPveVMZvx4joChkOr3xKEoacyKTgx/Rv3yxzIkMK28XVUSSMeT8KeCS2 K/leqG7X3/ztNuJmv6rZbvEO5kilL6fjuWMd8fvhCrRkZbcvHrqWMEhJi6cduKGR07/o udTD/ReBzpirxBQxllFITFKQL51adZSMVXEuDa1B9+KKbD2/lFbRm0Se4OptuSSyzS03 dBqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777965851; x=1778570651; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=bnxVS6Kk9eTbDNgPrud4mpp1Bk5HJdFGlZt1cQMqU4M=; b=s1DLvF2IRpo/8ABiLee21wxSqmiJ8B4ggaeV3o7RNjqDipwFsjJvGA0Xl6eFrIUoQP etpuabJImD47ijzVpXAw08c1kPNUI7fQMHLsbGDtKQBXOLE4Tki5lwJkZRhu+ex8SLtJ b/PpWkOQ+GvfZMIn9q+cJRWqmRqOieRi6jOw8wuC9jgfea1rA2jsvxMZC4cPlcRSh9Rc zcYfptgaYwQsT6ru9hB0EVxsAfrLz+zYWxs2NwNHWp1kJcnjYQSF6+j2uODeLmPeaYk0 B1WYbUVGP2K6ZhSDwnKmuWqAWixfzmiGtVkHtrUPywFAIH1Vx5WluixhT56+vVz0qGXZ WaNA== X-Gm-Message-State: AOJu0Yyw3zSgjcyOSmBsR0FHQENArYRO2N8dnPkc+PnZ7ytDBvhU5ZCK RLkkfshynP0BuKxYMlJbrnhcbxysqQxqamOwN68au57Kn/u02YB/rLauyBHZFItpcwswe52Voms otB6gt3c730/dYp6c+OqMPH3fjAlv+P0vCwi7 X-Gm-Gg: AeBDieuOAOZd/rw8G1bzO2XKDC8Io+HXiYw/MSRe67lWBYN4cR0NEIHfVsRdwl+EzjE M+LVmLBxfF7vX48KWUTgQbFERlELCg3nVKW7GL3ITo6GVU07wae96r3yUlAE79f2NN17rOvGG8x 9CKp3D/KEdBOF9Sn3TmcklEoyYc+9jB43pRbA76305TkNvHOlYd+5Vqpxt/i+KhfpxtzXlu3s7u HTdPZGS3dEeLMqvqhPbgEMvYo1w9OZX5DjCLoQ8GIT1snaabDoL/L2M0RtkVMh/aW1qY14hrnt/ XOqFd4aUVvCK4tLNEX+/hVG/nd9/vQ== X-Received: by 2002:a05:6a21:3291:b0:39f:94cb:1bc with SMTP id adf61e73a8af0-3aa3b222056mr2295883637.1.1777965851357; Tue, 05 May 2026 00:24:11 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Amul Sul Date: Tue, 5 May 2026 12:53:33 +0530 X-Gm-Features: AVHnY4LBBCtR1qQoy0EEJd5EzkdWco1Mt6-4ivpnUllT0Hmib5PiX47BiIEw_hk Message-ID: Subject: Re: Cleanup: Replace sscanf with strtol/strtoul in snapmgr To: Tristan Partin Cc: pgsql-hackers Content-Type: multipart/mixed; boundary="000000000000fe4d7a06510cee0b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000fe4d7a06510cee0b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, May 4, 2026 at 9:19=E2=80=AFPM Tristan Partin w= rote: > > On Mon Apr 20, 2026 at 12:07 AM CDT, Amul Sul wrote: > The patch generally looks good. One comment: > > > @@ -1359,17 +1365,36 @@ parseVxidFromText(const char *prefix, char **s,= const char *filename, > > { > > char *ptr =3D *s; > > int prefixlen =3D strlen(prefix); > > + long lval; > > + unsigned long ulval; > > Perhaps better variable names would be procNumber and > localTransactionId. > Thanks, Andreas and Tristan, for the review ! I have renamed the variables as suggested but used the shorter forms procno and xid instead of procNumber and localTransactionId. I also applied similar changes to parseXidFromText (changing val to xid), but kept val in parseIntFromText since it seems to be more appropriate for a generic integer value. Updated patch attached. Regards, Amul --000000000000fe4d7a06510cee0b Content-Type: application/octet-stream; name="v2-0001-snapmgr-replace-sscanf-with-strtol-strtoul-in-sna.patch" Content-Disposition: attachment; filename="v2-0001-snapmgr-replace-sscanf-with-strtol-strtoul-in-sna.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mosatdvi0 RnJvbSA1ODNkYzM2NDI2NTA4YjczMzY0YTY4MWJlNmVkMjllMWE0ZDg3ODA4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IE1v biwgMjAgQXByIDIwMjYgMTA6MjE6MjggKzA1MzAKU3ViamVjdDogW1BBVENIIHYyXSBzbmFwbWdy OiByZXBsYWNlIHNzY2FuZiB3aXRoIHN0cnRvbC9zdHJ0b3VsIGluIHNuYXBzaG90CiBwYXJzZSBo ZWxwZXJzCgpwYXJzZUludEZyb21UZXh0LCBwYXJzZVhpZEZyb21UZXh0LCBhbmQgcGFyc2VWeGlk RnJvbVRleHQgdXNlZCBzc2NhbmYKdG8gY29udmVydCBkaWdpdCBzdHJpbmdzIHRvIGludGVnZXJz LiAgUmVwbGFjZSB3aXRoIHN0cnRvbC9zdHJ0b3VsLAp3aGljaCBwcm92aWRlIGV4cGxpY2l0IG92 ZXJmbG93IGRldGVjdGlvbiBhbmQgYWR2YW5jZSB0aGUgZW5kLXBvaW50ZXIKZGlyZWN0bHksIGF2 b2lkaW5nIGEgcmVkdW5kYW50IHN0cmNociBzY2FuIG92ZXIgdGhlIGFscmVhZHktcGFyc2VkCmRp Z2l0cy4KLS0tCiBzcmMvYmFja2VuZC91dGlscy90aW1lL3NuYXBtZ3IuYyB8IDQ3ICsrKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygr KSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvdGltZS9z bmFwbWdyLmMgYi9zcmMvYmFja2VuZC91dGlscy90aW1lL3NuYXBtZ3IuYwppbmRleCAxMGZlMThk ZjJlNy4uMjdhMGVjODM1ZTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL3RpbWUvc25h cG1nci5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL3RpbWUvc25hcG1nci5jCkBAIC0xMzA4LDI0 ICsxMzA4LDI4IEBAIHBhcnNlSW50RnJvbVRleHQoY29uc3QgY2hhciAqcHJlZml4LCBjaGFyICoq cywgY29uc3QgY2hhciAqZmlsZW5hbWUpCiB7CiAJY2hhcgkgICAqcHRyID0gKnM7CiAJaW50CQkJ cHJlZml4bGVuID0gc3RybGVuKHByZWZpeCk7Ci0JaW50CQkJdmFsOworCWxvbmcJCXZhbDsKKwlj aGFyCSAgICplbmRwdHI7CiAKIAlpZiAoc3RybmNtcChwdHIsIHByZWZpeCwgcHJlZml4bGVuKSAh PSAwKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9URVhU X1JFUFJFU0VOVEFUSU9OKSwKIAkJCQkgZXJybXNnKCJpbnZhbGlkIHNuYXBzaG90IGRhdGEgaW4g ZmlsZSBcIiVzXCIiLCBmaWxlbmFtZSkpKTsKIAlwdHIgKz0gcHJlZml4bGVuOwotCWlmIChzc2Nh bmYocHRyLCAiJWQiLCAmdmFsKSAhPSAxKQorCWVycm5vID0gMDsKKwl2YWwgPSBzdHJ0b2wocHRy LCAmZW5kcHRyLCAxMCk7CisJaWYgKGVuZHB0ciA9PSBwdHIgfHwgZXJybm8gIT0gMCB8fAorCQl2 YWwgPCBJTlRfTUlOIHx8IHZhbCA+IElOVF9NQVgpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVy cmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAogCQkJCSBlcnJtc2co ImludmFsaWQgc25hcHNob3QgZGF0YSBpbiBmaWxlIFwiJXNcIiIsIGZpbGVuYW1lKSkpOwotCXB0 ciA9IHN0cmNocihwdHIsICdcbicpOworCXB0ciA9IHN0cmNocihlbmRwdHIsICdcbicpOwogCWlm ICghcHRyKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9U RVhUX1JFUFJFU0VOVEFUSU9OKSwKIAkJCQkgZXJybXNnKCJpbnZhbGlkIHNuYXBzaG90IGRhdGEg aW4gZmlsZSBcIiVzXCIiLCBmaWxlbmFtZSkpKTsKIAkqcyA9IHB0ciArIDE7Ci0JcmV0dXJuIHZh bDsKKwlyZXR1cm4gKGludCkgdmFsOwogfQogCiBzdGF0aWMgVHJhbnNhY3Rpb25JZApAQCAtMTMz MywyNCArMTMzNywyNyBAQCBwYXJzZVhpZEZyb21UZXh0KGNvbnN0IGNoYXIgKnByZWZpeCwgY2hh ciAqKnMsIGNvbnN0IGNoYXIgKmZpbGVuYW1lKQogewogCWNoYXIJICAgKnB0ciA9ICpzOwogCWlu dAkJCXByZWZpeGxlbiA9IHN0cmxlbihwcmVmaXgpOwotCVRyYW5zYWN0aW9uSWQgdmFsOworCXVu c2lnbmVkIGxvbmcgeGlkOworCWNoYXIJICAgKmVuZHB0cjsKIAogCWlmIChzdHJuY21wKHB0ciwg cHJlZml4LCBwcmVmaXhsZW4pICE9IDApCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUo RVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAogCQkJCSBlcnJtc2coImludmFs aWQgc25hcHNob3QgZGF0YSBpbiBmaWxlIFwiJXNcIiIsIGZpbGVuYW1lKSkpOwogCXB0ciArPSBw cmVmaXhsZW47Ci0JaWYgKHNzY2FuZihwdHIsICIldSIsICZ2YWwpICE9IDEpCisJZXJybm8gPSAw OworCXhpZCA9IHN0cnRvdWwocHRyLCAmZW5kcHRyLCAxMCk7CisJaWYgKGVuZHB0ciA9PSBwdHIg fHwgZXJybm8gIT0gMCB8fCB4aWQgPiBVSU5UX01BWCkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQko ZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCiAJCQkJIGVycm1z ZygiaW52YWxpZCBzbmFwc2hvdCBkYXRhIGluIGZpbGUgXCIlc1wiIiwgZmlsZW5hbWUpKSk7Ci0J cHRyID0gc3RyY2hyKHB0ciwgJ1xuJyk7CisJcHRyID0gc3RyY2hyKGVuZHB0ciwgJ1xuJyk7CiAJ aWYgKCFwdHIpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElE X1RFWFRfUkVQUkVTRU5UQVRJT04pLAogCQkJCSBlcnJtc2coImludmFsaWQgc25hcHNob3QgZGF0 YSBpbiBmaWxlIFwiJXNcIiIsIGZpbGVuYW1lKSkpOwogCSpzID0gcHRyICsgMTsKLQlyZXR1cm4g dmFsOworCXJldHVybiAoVHJhbnNhY3Rpb25JZCkgeGlkOwogfQogCiBzdGF0aWMgdm9pZApAQCAt MTM1OSwxNyArMTM2NiwzNyBAQCBwYXJzZVZ4aWRGcm9tVGV4dChjb25zdCBjaGFyICpwcmVmaXgs IGNoYXIgKipzLCBjb25zdCBjaGFyICpmaWxlbmFtZSwKIHsKIAljaGFyCSAgICpwdHIgPSAqczsK IAlpbnQJCQlwcmVmaXhsZW4gPSBzdHJsZW4ocHJlZml4KTsKKwlsb25nCQlwcm9jbm87CisJdW5z aWduZWQgbG9uZyB4aWQ7CisJY2hhcgkgICAqZW5kcHRyOwogCiAJaWYgKHN0cm5jbXAocHRyLCBw cmVmaXgsIHByZWZpeGxlbikgIT0gMCkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShF UlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCiAJCQkJIGVycm1zZygiaW52YWxp ZCBzbmFwc2hvdCBkYXRhIGluIGZpbGUgXCIlc1wiIiwgZmlsZW5hbWUpKSk7CiAJcHRyICs9IHBy ZWZpeGxlbjsKLQlpZiAoc3NjYW5mKHB0ciwgIiVkLyV1IiwgJnZ4aWQtPnByb2NOdW1iZXIsICZ2 eGlkLT5sb2NhbFRyYW5zYWN0aW9uSWQpICE9IDIpCisKKwkvKiBQYXJzZSBwcm9jTnVtYmVyICh0 aGUgc2lnbmVkIGludGVnZXIgYmVmb3JlICcvJykgKi8KKwllcnJubyA9IDA7CisJcHJvY25vID0g c3RydG9sKHB0ciwgJmVuZHB0ciwgMTApOworCWlmIChlbmRwdHIgPT0gcHRyIHx8IGVycm5vICE9 IDAgfHwKKwkJcHJvY25vIDwgSU5UX01JTiB8fCBwcm9jbm8gPiBJTlRfTUFYIHx8CisJCSplbmRw dHIgIT0gJy8nKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJ RF9URVhUX1JFUFJFU0VOVEFUSU9OKSwKIAkJCQkgZXJybXNnKCJpbnZhbGlkIHNuYXBzaG90IGRh dGEgaW4gZmlsZSBcIiVzXCIiLCBmaWxlbmFtZSkpKTsKLQlwdHIgPSBzdHJjaHIocHRyLCAnXG4n KTsKKwl2eGlkLT5wcm9jTnVtYmVyID0gKFByb2NOdW1iZXIpIHByb2NubzsKKwlwdHIgPSBlbmRw dHIgKyAxOwkJCS8qIHNraXAgdGhlICcvJyBzZXBhcmF0b3IgKi8KKworCS8qIFBhcnNlIGxvY2Fs VHJhbnNhY3Rpb25JZCAodGhlIHVuc2lnbmVkIGludGVnZXIgYWZ0ZXIgJy8nKSAqLworCWVycm5v ID0gMDsKKwl4aWQgPSBzdHJ0b3VsKHB0ciwgJmVuZHB0ciwgMTApOworCWlmIChlbmRwdHIgPT0g cHRyIHx8IGVycm5vICE9IDAgfHwgeGlkID4gVUlOVF9NQVgpCisJCWVyZXBvcnQoRVJST1IsCisJ CQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCSBl cnJtc2coImludmFsaWQgc25hcHNob3QgZGF0YSBpbiBmaWxlIFwiJXNcIiIsIGZpbGVuYW1lKSkp OworCXZ4aWQtPmxvY2FsVHJhbnNhY3Rpb25JZCA9IChMb2NhbFRyYW5zYWN0aW9uSWQpIHhpZDsK KwlwdHIgPSBzdHJjaHIoZW5kcHRyLCAnXG4nKTsKIAlpZiAoIXB0cikKIAkJZXJlcG9ydChFUlJP UiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCi0t IAoyLjQ3LjEKCg== --000000000000fe4d7a06510cee0b--