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 1w5sMe-003iRF-1F for pgsql-hackers@arkaria.postgresql.org; Thu, 26 Mar 2026 21:35:40 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w5sMc-005VAS-2S for pgsql-hackers@arkaria.postgresql.org; Thu, 26 Mar 2026 21:35:39 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w57sY-008kBH-05 for pgsql-hackers@lists.postgresql.org; Tue, 24 Mar 2026 19:57:30 +0000 Received: from mail-brazilsoutheastazlp170100001.outbound.protection.outlook.com ([2a01:111:f403:c106::1] helo=ROAP284CU027.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1w57sW-00000000qRY-12VY for pgsql-hackers@postgresql.org; Tue, 24 Mar 2026 19:57:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Oe8CT70ZP8uIXiNRcX1Xk/BpnyDCIxl5zGdShM/sfFIlLkyFODdamwwxytA5TI9j8b4dP+cs/SUnsP9OVA4gdpldIOVcM1dKRn1PEJ7OxSWxJGBmJ1omT+Wcr/97KtQIUGgoMfZk8vOUubnnRe3bSJqg6xMf3yok+2A70cOrfRpfvuHnOUbRu45o8OQX05btmLwBRKyEhCIwcEKUXU7vQoXAkyNZvCy1/DnvMVhpI6nlZLjmGDbIj6uk1azV4SqcbPCHZDekK5zPllHAkhiVJj5Kqrpr4DuJ8g61mHE5EfT9/X3iqxM+NRH1qvfP+6QjM4RUaHr/kBdRqSJwcw9WOw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=k6tDw9uwg25PyqsG9AX3mOcy9npwo22+fb/+DAjs7UQ=; b=qUzM4KWyUdUxtvQRS4ORntC6jfE9LU+j6e6hwHUs9QbkIsUVxSVgwSHcX9nhuKaPK0ShO4FdxUUg0f+a7B1inGFxxQ7eLhC2IAVmZKJpGusP56/OTz1v2fAFK/8ArulnOcMWyg5PV1YYfrHIklZAyGrRT9TNt5aMkSw7zxjr5MbAmPPOmrIN2zcDOvQkMm09CCBygcMn3BZS8eQ/nsHuQx40FUt/r6uXMTfUYcI8xnf0oy8Zo8lwmuhsHYGmxO2TqS6wnVt7Nm3mjCONqlRTt9ryRWwEYu519+FmyGahf7msfY5HA0BJt8J75ULu69l0BpmlEBzSL4Ueq9jhi26Urg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=movestax.com; dmarc=pass action=none header.from=movestax.com; dkim=pass header.d=movestax.com; arc=none Received: from CPYP284MB1221.BRAP284.PROD.OUTLOOK.COM (2603:10d6:103:b2::13) by RIUP284MB4094.BRAP284.PROD.OUTLOOK.COM (2603:10d6:10:184::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Tue, 24 Mar 2026 19:57:21 +0000 Received: from CPYP284MB1221.BRAP284.PROD.OUTLOOK.COM ([fe80::328b:854f:d61b:16ab]) by CPYP284MB1221.BRAP284.PROD.OUTLOOK.COM ([fe80::328b:854f:d61b:16ab%6]) with mapi id 15.20.9745.019; Tue, 24 Mar 2026 19:57:21 +0000 From: Thiago Caserta To: "pgsql-hackers@postgresql.org" Subject: [PATCH v1] Replace sprintf() with snprintf() in libpq for safety Anexo: o arquivo Thread-Topic: [PATCH v1] Replace sprintf() with snprintf() in libpq for safety Anexo: o arquivo Thread-Index: AQHcu8gRsQwvmyv1/0m/3MKyTTMYpw== Date: Tue, 24 Mar 2026 19:57:21 +0000 Message-ID: Accept-Language: en-US Content-Language: en-GB X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-reactions: allow authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=movestax.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CPYP284MB1221:EE_|RIUP284MB4094:EE_ x-ms-office365-filtering-correlation-id: 20366cbd-e93a-4479-d83b-08de89df8fa9 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|6049299003|366016|376014|10070799003|1800799024|8096899003|38070700021|56012099003|18002099003|4053099003; x-microsoft-antispam-message-info: tBiCxJoN0Gg5ZJmhPWFMPz/AGkQeSzChuLBcu65pBPxnVKAMZoh1Uxcl8MMY86kRJolsNTAv8+1EfQNNSyabbaNiMpM2i7yyFYAQGjAAYB07eP5D68mQX2SE8L4aNoLXt+sHrSRt4IjD0XmRERO4gHdnsQYyYf06M4w91ZCc4MqM7KFeUyA/dJBvdVedKZFOCts2n268YiaRbGF9VsEztMMaOTxbxup8IZ02Yh5vbuLiozI4Q0V0rfFKtU5d/vYrtrI55IfS5nN6Rz+6mLzx536ys6SaMa3KPy5hlj/wc63EhUiMFQzOZV6CcORCgbiNIdX5eIL21iyuBlZQ99Y3YS4DzsyIP94MvuhVqOm6hYIMqZdX+G3SJ067ddNiClXzgjTpgpAX287mosCek/boYbC0T6XpHfpWBfi/LjdI1r13EtpBXh7GiTzug70Mo8bBza9ArxNgPArO6UuQno1A7huOxUbvjCCqG7CFAx6WD5iJlgq7gZg2NwJW8FpUwgzESMkaLt5bjih8gQ5GU3eITE7Dr/S27249WUh36a2suMXTMCbOFYaaEYhzjR4GeYWjX4hIjfDW3flPrlrZhAA+l3k8lgN9CCqOZ0eLZlfpKDgipXDuuoqqw4XIYoviMasdg/UdS+ebvwiWHfLoyErRH35wSBm3xYbBxbXt7YIsHa69wfmiSqqY0JemU00gdDxZh4yYG4sh6oS48S+/uNImxieRl6EynPTrPpup2K2kUgoyQ5MEu4E034WjV5EXHVDlk/juzwv7+Qcyzg0iMip5MaZytI9m/nDTyJMhq/Xssd4= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CPYP284MB1221.BRAP284.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(6049299003)(366016)(376014)(10070799003)(1800799024)(8096899003)(38070700021)(56012099003)(18002099003)(4053099003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 2 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?mq9revoQYcJI3rEnVL3JvExg4Uk4BhEaZVC1uv2vSZXbc69D+WWr/EwG4CHR?= =?us-ascii?Q?3mogeVAcJqfe4BH5nOBKZU9nnav3+ozc9jJP7RvHjbKdIHF1wjO/hbBGONSq?= =?us-ascii?Q?osT1Ei+QY+m5H/yQOIgkOJUVFiYhC0cHpAJwCuJhlJQrS8dIQETkNRaO1w3D?= =?us-ascii?Q?PpERmpAycc82tkBnYFaBSjtO9ijtjpTzD+OTOvGCgohTZ2bjBLOC7v+6b+gs?= =?us-ascii?Q?yDAkeLfjOU9cUsa4j1sj+zBr1b8Vfh1bg/Kx5v9fJbO7LJ8aD8ruR4sRfqsb?= =?us-ascii?Q?EAD1zKmZSbFlbyC9cq1V6bPsBkXAP0HGMIHrC+ZXUG0POI+4LTNw1PmmsJlw?= =?us-ascii?Q?Ipv691bgixbIdx3x7pS+wldMdRfbLjzQVn5CEYy7brZZmyLLoq3UtquePb90?= =?us-ascii?Q?pTsK8i4gDgb2NDRmjBbVG/hkn4zZ6x3V3cG2UlvMgPm8zU+mernLlNdcGUmQ?= =?us-ascii?Q?YzS7Uok1RLDfdOUOMQgUMe4PW96VFg/40boOCE6K9/j8vk/TCrD7IfgOsMd0?= =?us-ascii?Q?6/URB3RrBNka5tca4377WCa2GH4gIbKfmIlz4HnikFrUVRrzxgKGBAVpVCHB?= =?us-ascii?Q?UlUlMN8rrT4OCEc4aqN8Awkzm9DWfyh9+RfOqt0Zrvh8gDos6qU0QDomhKuR?= =?us-ascii?Q?i2UdY/zqpWX3EzKV1CWTXuxjZS5hvJwL6nguT82qHjHDXF9JV08nOrOgOjXC?= =?us-ascii?Q?ZqTs6z28hJfrmcqjIyWCt1t6i8pk2AkTUC3KYM6oXy/6biF6nd01IpRC1JU3?= =?us-ascii?Q?50iXORbm1vZJvFOxOktCN+sWvepwYuQDM04c+izdlIe0TBYDrTVC4NAcullU?= =?us-ascii?Q?Q3keQke6kY8rUbv69K4cRHLtnBZofx9Ifr1aHz0+njRNOQS1z5XpA8T9i5Zc?= =?us-ascii?Q?z9qurMA0GaTTk+dAijrAFsRPZ2G2UR6pSkvTzJb1jVebMWK+Xb32ptCrzs2A?= =?us-ascii?Q?+q2dnNoNfO8SfWp7sisXIKQWdSx4wiyobE9ToCagajitBrdlGEoOiFoduADb?= =?us-ascii?Q?NenS+B+Td8N4nPDCJLSh1gqutYpDMNzbHevjlE2uFkBIw4RRwm1nvCeRAp7i?= =?us-ascii?Q?SyUo/xxQy0DOcJIG34ARjIYHBjxZHiNpcME+NlLlrOGQO+D9asGr3Mi90Mbt?= =?us-ascii?Q?a9T4i7MdyHJa8ifKZMRA4c/aXzV60xcN9y1cKOnd12fgLZqC/XD4gWW7Euee?= =?us-ascii?Q?k0sHM2YpZz86w50YYlJF4bTNWPaf+cn2PgDfIQ3fzvgn2e2lTKfd59WGmsAw?= =?us-ascii?Q?/Mk/2zM2lsGIFaVnx5LO4kjSwiwkQ8LPp62iOjk9aZLhsEFNx0w9k7LtPB+y?= =?us-ascii?Q?EQj5F45PTdanxO9y8u2yt0/YPbUxCYINdFogH42d/lruHtdnlsi0qFsZMEj0?= =?us-ascii?Q?RVDC0R5y4pin6WWR8AawEiptVaZSZ9w35l46jGPmfEPNqbj3I4GZkIT3Lo9B?= =?us-ascii?Q?4i5tB98B18wsIKsGQhGI6Rn+V3SWha93wV7j5IP8wFwXud8uGX3tFnf69aPP?= =?us-ascii?Q?WbusTQMvMU0ZTXLglN20pv5q2NbYS9+kQIjDmdE/oKVngo3oDyodxsAeAfom?= =?us-ascii?Q?1sCEwvPpn5DxpWTxJFxwCdXQH4uegSz89PqY+nE/DHISCJQA4IFpqPm3w3EE?= =?us-ascii?Q?ebSiZ3Ccf2ZTSofFEhTVqyCgZkXGH+epqKRRg5dWCT0qbWerw5P9cQH53i8g?= =?us-ascii?Q?whKUUfoB1yIO32pMculrqLdk98mMPjhlYgUvFZ7gZf7ikgnJacr84ADafqcg?= =?us-ascii?Q?d2xb+qon6Sy5wjJ6258LgjcxZPG2tVRy7oLXTPpkQvyvIjgNYbmlM06TIbPU?= x-ms-exchange-antispam-messagedata-1: pw0vJopSakTIofJeB8THV68eBd/ALYrg504= Content-Type: multipart/mixed; boundary="_004_CPYP284MB1221DDF51A8E74C19F07F74EC948ACPYP284MB1221BRAP_" MIME-Version: 1.0 X-OriginatorOrg: movestax.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CPYP284MB1221.BRAP284.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 20366cbd-e93a-4479-d83b-08de89df8fa9 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Mar 2026 19:57:21.4098 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 971924c0-2be8-498f-aff5-699a1db147bd X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: UmWT90WLYqiTlLiX8195kfgK/n9SVn87G9i5RaDYyuBjIXx8j9iECKGlSzUijSCk4wWIc7RaEgeDhHhTZ1m57Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: RIUP284MB4094 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_004_CPYP284MB1221DDF51A8E74C19F07F74EC948ACPYP284MB1221BRAP_ Content-Type: multipart/alternative; boundary="_000_CPYP284MB1221DDF51A8E74C19F07F74EC948ACPYP284MB1221BRAP_" --_000_CPYP284MB1221DDF51A8E74C19F07F74EC948ACPYP284MB1221BRAP_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi hackers, Attached is a patch that converts several sprintf() calls to snprintf() in = libpq client library code. While the existing buffers are currently sized = correctly, using snprintf() provides an additional safety net against pote= ntial buffer overflows and is consistent with the project's general directi= on of preferring bounded string operations. Changes: - fe-auth.c: SSPI target string construction - fe-connect.c: client encoding query formatting - fe-exec.c: notice message formatting - fe-print.c: format string construction - win32.c: Windows socket error messages The patch applies cleanly against current HEAD (dd5716f3c74) and passes git= diff --check with no whitespace issues. No functional changes are introduc= ed (this is a safety hardening change only). Best regards, Thiago Caserta --_000_CPYP284MB1221DDF51A8E74C19F07F74EC948ACPYP284MB1221BRAP_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable
Hi hackers,

Attached is a patch that converts several sprintf() calls to snprintf() in = libpq client library code. While the existing buffers are currently  s= ized correctly, using snprintf() provides an additional safety net  ag= ainst potential buffer overflows and is consistent with the project's general direction of preferring bounded string ope= rations.                   &nb= sp;
                     = ;                     &nb= sp;                     &= nbsp;               
Changes:                   &nb= sp;                     &= nbsp;                    =        
  - fe-auth.c: SSPI target string construction       &n= bsp;                     =      
  - fe-connect.c: client encoding query formatting      = ;    
  - fe-exec.c: notice message formatting
  - fe-print.c: format string construction
  - win32.c: Windows socket error messages        =                     &nbs= p;        
  
The patch applies cleanly against current HEAD (dd5716f3c74) and passes git= diff --check with no whitespace issues. No functional changes are introduc= ed (this is a safety hardening change only).         &n= bsp;                
                     = ;                     &nb= sp;                     &= nbsp;               
Best regards,                  = ;                     &nb= sp;                     &= nbsp;   
Thiago Caserta            
--_000_CPYP284MB1221DDF51A8E74C19F07F74EC948ACPYP284MB1221BRAP_-- --_004_CPYP284MB1221DDF51A8E74C19F07F74EC948ACPYP284MB1221BRAP_ Content-Type: application/octet-stream; name="v1-0001-Replace-sprintf-with-snprintf-in-libpq-for-safety.patch" Content-Description: v1-0001-Replace-sprintf-with-snprintf-in-libpq-for-safety.patch Content-Disposition: attachment; filename="v1-0001-Replace-sprintf-with-snprintf-in-libpq-for-safety.patch"; size=3995; creation-date="Tue, 24 Mar 2026 19:55:52 GMT"; modification-date="Tue, 24 Mar 2026 19:55:52 GMT" Content-Transfer-Encoding: base64 RnJvbSBlOGRjN2Q3OWNhNjI3NzE3NzkxOGIzNmIzNjhhYTFlZTRhMDFkMWVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUaGlhZ28gQ2FzZXJ0YSA8Y2FzZXJ0YUBtb3Zlc3RheC5jb20+ CkRhdGU6IFR1ZSwgMjQgTWFyIDIwMjYgMTY6MzI6MzkgLTAzMDAKU3ViamVjdDogW1BBVENIIHYx XSBSZXBsYWNlIHNwcmludGYoKSB3aXRoIHNucHJpbnRmKCkgaW4gbGlicHEgZm9yIHNhZmV0eQoK Q29udmVydCBzZXZlcmFsIHNwcmludGYoKSBjYWxscyB0byBzbnByaW50ZigpIGluIGxpYnBxIGNs aWVudApsaWJyYXJ5IGNvZGUgdG8gcHJldmVudCBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93cy4g V2hpbGUgbW9zdApvZiB0aGVzZSBidWZmZXJzIGFyZSBjdXJyZW50bHkgc2l6ZWQgY29ycmVjdGx5 LCB1c2luZyBzbnByaW50ZigpCmlzIGEgc2FmZXIgcHJhY3RpY2UgdGhhdCBndWFyZHMgYWdhaW5z dCBmdXR1cmUgY2hhbmdlcy4KCkFmZmVjdGVkIGZpbGVzOgotIGZlLWF1dGguYzogU1NQSSB0YXJn ZXQgc3RyaW5nIGNvbnN0cnVjdGlvbgotIGZlLWNvbm5lY3QuYzogY2xpZW50IGVuY29kaW5nIHF1 ZXJ5IGZvcm1hdHRpbmcKLSBmZS1leGVjLmM6IG5vdGljZSBtZXNzYWdlIGZvcm1hdHRpbmcKLSBm ZS1wcmludC5jOiBmb3JtYXQgc3RyaW5nIGNvbnN0cnVjdGlvbgotIHdpbjMyLmM6IFdpbmRvd3Mg c29ja2V0IGVycm9yIG1lc3NhZ2VzCgpDby1BdXRob3JlZC1CeTogQ2xhdWRlIE9wdXMgNC42IDxu b3JlcGx5QGFudGhyb3BpYy5jb20+Ci0tLQogc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtYXV0aC5j ICAgIHwgMyArKy0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5lY3QuYyB8IDIgKy0KIHNy Yy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4ZWMuYyAgICB8IDIgKy0KIHNyYy9pbnRlcmZhY2VzL2xp YnBxL2ZlLXByaW50LmMgICB8IDQgKystLQogc3JjL2ludGVyZmFjZXMvbGlicHEvd2luMzIuYyAg ICAgIHwgNCArKy0tCiA1IGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1hdXRoLmMgYi9zcmMv aW50ZXJmYWNlcy9saWJwcS9mZS1hdXRoLmMKaW5kZXggZjA1YWFlYTk2NTEuLmE0MGE0YmNmZmE0 IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1hdXRoLmMKKysrIGIvc3JjL2lu dGVyZmFjZXMvbGlicHEvZmUtYXV0aC5jCkBAIC00MTYsNyArNDE2LDggQEAgcGdfU1NQSV9zdGFy dHVwKFBHY29ubiAqY29ubiwgaW50IHVzZV9uZWdvdGlhdGUsIGludCBwYXlsb2FkbGVuKQogCQls aWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAib3V0IG9mIG1lbW9yeSIpOwogCQlyZXR1cm4g U1RBVFVTX0VSUk9SOwogCX0KLQlzcHJpbnRmKGNvbm4tPnNzcGl0YXJnZXQsICIlcy8lcyIsIGNv bm4tPmtyYnNydm5hbWUsIGhvc3QpOworCXNucHJpbnRmKGNvbm4tPnNzcGl0YXJnZXQsIHN0cmxl bihjb25uLT5rcmJzcnZuYW1lKSArIHN0cmxlbihob3N0KSArIDIsCisJCQkgIiVzLyVzIiwgY29u bi0+a3Jic3J2bmFtZSwgaG9zdCk7CiAKIAkvKgogCSAqIEluZGljYXRlIHRoYXQgd2UncmUgaW4g U1NQSSBhdXRoZW50aWNhdGlvbiBtb2RlIHRvIG1ha2Ugc3VyZSB0aGF0CmRpZmYgLS1naXQgYS9z cmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9m ZS1jb25uZWN0LmMKaW5kZXggZGI5YjRjOGVkYmYuLjFlMzViZWJhZmRhIDEwMDY0NAotLS0gYS9z cmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGli cHEvZmUtY29ubmVjdC5jCkBAIC03ODU0LDcgKzc4NTQsNyBAQCBQUXNldENsaWVudEVuY29kaW5n KFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqZW5jb2RpbmcpCiAJCXJldHVybiAtMTsKIAogCS8q IG9rLCBub3cgc2VuZCBhIHF1ZXJ5ICovCi0Jc3ByaW50ZihxYnVmLCBxdWVyeSwgZW5jb2Rpbmcp OworCXNucHJpbnRmKHFidWYsIHNpemVvZihxYnVmKSwgcXVlcnksIGVuY29kaW5nKTsKIAlyZXMg PSBQUWV4ZWMoY29ubiwgcWJ1Zik7CiAKIAlpZiAocmVzID09IE5VTEwpCmRpZmYgLS1naXQgYS9z cmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1l eGVjLmMKaW5kZXggMjAzZDM4OGJkYmYuLjMyYmFhYmZiNzg3IDEwMDY0NAotLS0gYS9zcmMvaW50 ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhl Yy5jCkBAIC05NzYsNyArOTc2LDcgQEAgcHFJbnRlcm5hbE5vdGljZShjb25zdCBQR05vdGljZUhv b2tzICpob29rcywgY29uc3QgY2hhciAqZm10LC4uLikKIAkgKi8KIAlyZXMtPmVyck1zZyA9IChj aGFyICopIHBxUmVzdWx0QWxsb2MocmVzLCBzdHJsZW4obXNnQnVmKSArIDIsIGZhbHNlKTsKIAlp ZiAocmVzLT5lcnJNc2cpCi0JCXNwcmludGYocmVzLT5lcnJNc2csICIlc1xuIiwgbXNnQnVmKTsK KwkJc25wcmludGYocmVzLT5lcnJNc2csIHN0cmxlbihtc2dCdWYpICsgMiwgIiVzXG4iLCBtc2dC dWYpOwogCWVsc2UKIAkJcmVzLT5lcnJNc2cgPSBsaWJwcV9nZXR0ZXh0KCJvdXQgb2YgbWVtb3J5 XG4iKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtcHJpbnQuYyBiL3Ny Yy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXByaW50LmMKaW5kZXggYzRjNzA5YmMzZTQuLjU5M2JmNmE0 MzRkIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1wcmludC5jCisrKyBiL3Ny Yy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXByaW50LmMKQEAgLTcxNyw5ICs3MTcsOSBAQCBQUXByaW50 VHVwbGVzKGNvbnN0IFBHcmVzdWx0ICpyZXMsCiAJblR1cHMgPSBQUW50dXBsZXMocmVzKTsKIAog CWlmIChjb2xXaWR0aCA+IDApCi0JCXNwcmludGYoZm9ybWF0U3RyaW5nLCAiJSVzICUlLSVkcyIs IGNvbFdpZHRoKTsKKwkJc25wcmludGYoZm9ybWF0U3RyaW5nLCBzaXplb2YoZm9ybWF0U3RyaW5n KSwgIiUlcyAlJS0lZHMiLCBjb2xXaWR0aCk7CiAJZWxzZQotCQlzcHJpbnRmKGZvcm1hdFN0cmlu ZywgIiUlcyAlJXMiKTsKKwkJc25wcmludGYoZm9ybWF0U3RyaW5nLCBzaXplb2YoZm9ybWF0U3Ry aW5nKSwgIiUlcyAlJXMiKTsKIAogCWlmIChuRmllbGRzID4gMCkKIAl7CQkJCQkJCS8qIG9ubHkg cHJpbnQgcm93cyB3aXRoIGF0IGxlYXN0IDEgZmllbGQuICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2lu dGVyZmFjZXMvbGlicHEvd2luMzIuYyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3dpbjMyLmMKaW5k ZXggYjBjNTU4YjU1YTUuLjVkMjhmNTk5OWZlIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9s aWJwcS93aW4zMi5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3dpbjMyLmMKQEAgLTMwNywx NCArMzA3LDE0IEBAIHdpbnNvY2tfc3RyZXJyb3IoaW50IGVyciwgY2hhciAqc3RyZXJyYnVmLCBz aXplX3QgYnVmbGVuKQogCX0KIAogCWlmICghc3VjY2VzcykKLQkJc3ByaW50ZihzdHJlcnJidWYs IGxpYnBxX2dldHRleHQoInVucmVjb2duaXplZCBzb2NrZXQgZXJyb3I6IDB4JTA4WC8lZCIpLCBl cnIsIGVycik7CisJCXNucHJpbnRmKHN0cmVycmJ1ZiwgYnVmbGVuLCBsaWJwcV9nZXR0ZXh0KCJ1 bnJlY29nbml6ZWQgc29ja2V0IGVycm9yOiAweCUwOFgvJWQiKSwgZXJyLCBlcnIpOwogCWVsc2UK IAl7CiAJCXN0cmVycmJ1ZltidWZsZW4gLSAxXSA9ICdcMCc7CiAJCW9mZnMgPSBzdHJsZW4oc3Ry ZXJyYnVmKTsKIAkJaWYgKG9mZnMgPiAoaW50KSBidWZsZW4gLSA2NCkKIAkJCW9mZnMgPSBidWZs ZW4gLSA2NDsKLQkJc3ByaW50ZihzdHJlcnJidWYgKyBvZmZzLCAiICgweCUwOFgvJWQpIiwgZXJy LCBlcnIpOworCQlzbnByaW50ZihzdHJlcnJidWYgKyBvZmZzLCBidWZsZW4gLSBvZmZzLCAiICgw eCUwOFgvJWQpIiwgZXJyLCBlcnIpOwogCX0KIAlyZXR1cm4gc3RyZXJyYnVmOwogfQotLSAKMi41 My4wCgo= --_004_CPYP284MB1221DDF51A8E74C19F07F74EC948ACPYP284MB1221BRAP_--