Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lEtCR-00088o-Mn for pgadmin-hackers@arkaria.postgresql.org; Wed, 24 Feb 2021 12:23:27 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lEtCQ-0005M2-Lj for pgadmin-hackers@arkaria.postgresql.org; Wed, 24 Feb 2021 12:23:26 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lEtCQ-0005Lp-C0 for pgadmin-hackers@lists.postgresql.org; Wed, 24 Feb 2021 12:23:26 +0000 Received: from mail-ej1-x62e.google.com ([2a00:1450:4864:20::62e]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1lEtCK-0006Oa-MI for pgadmin-hackers@postgresql.org; Wed, 24 Feb 2021 12:23:25 +0000 Received: by mail-ej1-x62e.google.com with SMTP id g5so2732661ejt.2 for ; Wed, 24 Feb 2021 04:23:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=H0eOYGevudYbwRfgGh6cIR/ya7jJc9stuTa+uf3RZ9Y=; b=Mm5o8dp8thvXyqaGyGCSdVZ47i7PfoxJ758+65vv3fhOFFYUbe2kGpapwN0fSiXoHq PJatn96xvFRrcrpen6Sd2gTTwh9FVfvKluXGoienXPBiSPcd4CbG0DLtGVybUfG5Q5ri llxJAAxhjjinjq8VzCOpfikJOF2OELn7egdCjqHUNo8KEIAk0KCWR1OcSSyTHMSpNPln EgDPR5Ollcf4p221JVHuSTXly3qr1YZW4yD+RuY5RqbgBxpwXoqb53K1831pVXNZhrpL XpRzP4z7LJgb/sCYUix3zs7JhojzCTF/R/6bfef8GHQjv5ZjzfibuMvqiCQNL4J27/ag U8xQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=H0eOYGevudYbwRfgGh6cIR/ya7jJc9stuTa+uf3RZ9Y=; b=ZLBcCZRECD8PiZamPwMxQ7fG2rsSfWr8Dn3Kxm+AkE9mcfgz4RadlqCwUJVDxRHMjv 0iYwCrZid75vLNf5X85qqVVGVwWoqhtoY6tm38I1OiLuUWH8G1eVdlG+CsvdmZEOvDP7 LHiF3UE6lNakIhXWWatbtpQ3Oru2MZyDrfK3Q7K31nC8apTbqwvRiNQWHl/LxhJk9k7h vcDVKlmO8SsVEbjphRaJ2pliltwC04nCeuo2iMSaGtiofGwCkyHCkm5fJlkWzIRc6J5x zwpIgyBAkqCZVOcxnHq8umKIOmfgZfPKrpViPj8rM+pS08gArhjmlAPgTDohyuJy6NPC ddOg== X-Gm-Message-State: AOAM531QzyCo3TFGDrC8xBxNVo/JnvHpJw3yFrfirVkXcopWfSldmxfK jbLnNWhwDzTu/4mvocFNdMI7JEbHa+cwjIV/UpOlwtpkPlBOSl5LKDfA/87E5BPyhTcP4Kxj7Dc LAQOFm4z4Haxq9D3+71qzn24uN8NKWCMXH4bOzJluOK2RxR9gd038l9exenyXuyDuEM6HoBXb2N ZRDE3xRaWuI/TzcgtNKRJUc8YRUMtHybxqSMHt1I8C5vfOvfw8fwXSa6vpyQ== X-Google-Smtp-Source: ABdhPJzj9dt8924TJxUsB5FaI0I4minMt3H8pEhOPfzp8/6vqT4S5155BkOae2sBR72CQYJESYMxxzWYEl0vqvE3/Ak= X-Received: by 2002:a17:906:c1ca:: with SMTP id bw10mr13325032ejb.510.1614169399070; Wed, 24 Feb 2021 04:23:19 -0800 (PST) MIME-Version: 1.0 References: <87a6shyenl.fsf@gmail.com> <874ki1yais.fsf@gmail.com> <87zgztwv30.fsf@gmail.com> In-Reply-To: <87zgztwv30.fsf@gmail.com> From: Neel Patel Date: Wed, 24 Feb 2021 17:53:08 +0530 Message-ID: Subject: Re: pgagent unicode support To: Sergey Burladyan Cc: pgadmin-hackers , Ashesh Vashi , Dave Page Content-Type: multipart/mixed; boundary="000000000000a3d5e005bc1419bf" X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000a3d5e005bc1419bf Content-Type: multipart/alternative; boundary="000000000000a3d5de05bc1419bd" --000000000000a3d5de05bc1419bd Content-Type: text/plain; charset="UTF-8" Hi Sergey, Thanks for the review. Please find the attached updated patch. Do review it and let me know in case of any comments. Thanks, Neel Patel On Wed, Feb 24, 2021 at 5:12 PM Sergey Burladyan wrote: > Sergey Burladyan writes: > > > Maybe it should look something like this: > > + wcstombs_s(&charsConverted, mbs, mb_len + 1, wchar_str, mb_len); > > Ah, and we missed check for error. > > Something like this, maybe: > +#ifdef __WIN32__ > + size_t charsConverted = 0; > + if (wcstombs_s(&charsConverted, mbs, mb_len + 1, wchar_str, > mb_len) != 0) { > + delete [] mbs; > + return NULL; > + } > +#else > > -- > Sergey Burladyan > --000000000000a3d5de05bc1419bd Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Sergey,

Thanks for the review. Pleas= e find the attached updated patch.
Do review it and let me know i= n case of any comments.

Thanks,
Neel Pat= el

On Wed, Feb 24, 2021 at 5:12 PM Sergey Burladyan <eshkinkot@gmail.com> wrote:
Sergey Burladyan <eshkinkot@gmail.com> = writes:

> Maybe it should look something like this:
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 wcstombs_s(&charsConverted, mbs, mb_l= en + 1, wchar_str, mb_len);

Ah, and we missed check for error.

Something like this, maybe:
+#ifdef __WIN32__
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 size_t charsConverted =3D 0;
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (wcstombs_s(&charsConverted, mbs, mb_le= n + 1, wchar_str, mb_len) !=3D 0) {
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 delete [] mbs;
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return NULL;
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 }
+#else

--
Sergey Burladyan
--000000000000a3d5de05bc1419bd-- --000000000000a3d5e005bc1419bf Content-Type: application/octet-stream; name="pgagent_unicode_v2.patch" Content-Disposition: attachment; filename="pgagent_unicode_v2.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kljerr450 ZGlmZiAtLWdpdCBhL21pc2MuY3BwIGIvbWlzYy5jcHAKaW5kZXggMzVhYzgzZC4uZTUxOGYzYSAx MDA2NDQKLS0tIGEvbWlzYy5jcHAKKysrIGIvbWlzYy5jcHAKQEAgLTE0MywyMiArMTQzLDY2IEBA IHN0ZDo6d3N0cmluZyBOdW1Ub1N0cihjb25zdCBsb25nIGwpCiB9CiAKIC8vIFRoaXMgZnVuY3Rp b24gaXMgdXNlZCB0byBjb252ZXJ0IGNoYXIqIHRvIHN0ZDo6d3N0cmluZy4KLXN0ZDo6d3N0cmlu ZyBDaGFyVG9XU3RyaW5nKGNvbnN0IGNoYXIqIGNzdHIpCitzdGQ6OndzdHJpbmcgQ2hhclRvV1N0 cmluZyhjb25zdCBjaGFyICpjc3RyKQogewotCXN0ZDo6c3RyaW5nIHMgPSBzdGQ6OnN0cmluZyhj c3RyKTsKLQlzdGQ6OndzdHJpbmcgd3NUbXAocy5iZWdpbigpLCBzLmVuZCgpKTsKLQlyZXR1cm4g d3NUbXA7CisJaWYgKGNzdHIgIT0gTlVMTCkKKwl7CisJCXNpemVfdCB3Y19jbnQgPSBtYnN0b3dj cyhOVUxMLCBjc3RyLCAwKTsKKworCQlpZiAod2NfY250ID09IChzaXplX3QpIC0xKSB7CisJCQly ZXR1cm4gc3RkOjp3c3RyaW5nKCk7CisJCX0KKworCQl3Y2hhcl90ICp3Y3MgPSBuZXcgd2NoYXJf dFt3Y19jbnQgKyAxXTsKKwkJaWYgKHdjcyA9PSBOVUxMKSB7CisJCQlyZXR1cm4gc3RkOjp3c3Ry aW5nKCk7CisJCX0KKworCQlpZiAobWJzdG93Y3Mod2NzLCBjc3RyLCB3Y19jbnQgKyAxKSA9PSAo c2l6ZV90KSAtMSkgeworCQkJZGVsZXRlIFtdIHdjczsKKwkJCXJldHVybiBzdGQ6OndzdHJpbmco KTsKKwkJfQorCisJCXN0ZDo6d3N0cmluZyB0bXAoJndjc1swXSwgJndjc1t3Y19jbnRdKTsKKwkJ ZGVsZXRlIFtdIHdjczsKKworCQlyZXR1cm4gdG1wOworCX0KKwlyZXR1cm4gc3RkOjp3c3RyaW5n KCk7CiB9CiAKIC8vIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBjb252ZXJ0IHN0ZDo6d3N0cmlu ZyB0byBjaGFyICouCi1jaGFyICogV1N0cmluZ1RvQ2hhcihjb25zdCBzdGQ6OndzdHJpbmcgJndz dHIpCitjaGFyICpXU3RyaW5nVG9DaGFyKGNvbnN0IHN0ZDo6d3N0cmluZyAmd3N0cikKIHsKIAlj b25zdCB3Y2hhcl90ICp3Y2hhcl9zdHIgPSB3c3RyLmNfc3RyKCk7Ci0JaW50IHdzdHJfbGVuZ3Ro ID0gd2NzbGVuKHdjaGFyX3N0cik7Ci0JY2hhciAqZHN0ID0gbmV3IGNoYXJbd3N0cl9sZW5ndGgg KyAxMF07Ci0JbWVtc2V0KGRzdCwgMHgwMCwgKHdzdHJfbGVuZ3RoICsgMTApKTsKLQl3Y3N0b21i cyhkc3QsIHdjaGFyX3N0ciwgd3N0cl9sZW5ndGgpOwotCXJldHVybiBkc3Q7CisKKwlpbnQgbWJf bGVuID0gd2NzdG9tYnMoTlVMTCwgd2NoYXJfc3RyLCAwKTsKKworCWlmICgoc2l6ZV90KW1iX2xl biA9PSAoc2l6ZV90KSAtMSkgeworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwljaGFyICptYnMgPSBu ZXcgY2hhclttYl9sZW4gKyAxXTsKKwlpZiAobWJzID09IE5VTEwpIHsKKwkJcmV0dXJuIE5VTEw7 CisJfQorCisJbWVtc2V0KG1icywgMCwgbWJfbGVuICsgMSk7CisKKyNpZmRlZiBfX1dJTjMyX18K KwlzaXplX3QgY2hhcnNDb252ZXJ0ZWQgPSAwOworCWlmICh3Y3N0b21ic19zKCZjaGFyc0NvbnZl cnRlZCwgbWJzLCBtYl9sZW4gKyAxLCB3Y2hhcl9zdHIsIG1iX2xlbikgIT0gMCkgeworCQlkZWxl dGUgW10gbWJzOworCQlyZXR1cm4gTlVMTDsKKwl9CisjZWxzZQorCWlmICh3Y3N0b21icyhtYnMs IHdjaGFyX3N0ciwgbWJfbGVuICsgMSkgPT0gKHNpemVfdCkgLTEpIHsKKwkJZGVsZXRlIFtdIG1i czsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisjZW5kaWYKKwlyZXR1cm4gbWJzOwogfQogCiAvLyBC ZWxvdyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRlIHJhbmRvbSBzdHJpbmcgb2YgZ2l2ZW4gY2hhcmFj dGVyLgpkaWZmIC0tZ2l0IGEvdW5peC5jcHAgYi91bml4LmNwcAppbmRleCA5YTQxZTM4Li5kNGIw ZDNkIDEwMDY0NAotLS0gYS91bml4LmNwcAorKysgYi91bml4LmNwcApAQCAtMTU1LDYgKzE1NSw4 IEBAIHN0YXRpYyB2b2lkIGRhZW1vbml6ZSh2b2lkKQogCiBpbnQgbWFpbihpbnQgYXJnYywgY2hh ciAqKmFyZ3YpCiB7CisJc2V0bG9jYWxlKExDX0FMTCwgIiIpOworCiAJc3RkOjp3c3RyaW5nIGV4 ZWN1dGFibGU7CiAJZXhlY3V0YWJsZS5hc3NpZ24oQ2hhclRvV1N0cmluZyhhcmd2WzBdKSk7CiAK --000000000000a3d5e005bc1419bf--