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.94.2) (envelope-from ) id 1txua9-00GNtV-M9 for pgsql-hackers@arkaria.postgresql.org; Thu, 27 Mar 2025 21:16:10 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1txua8-00Dmwl-11 for pgsql-hackers@arkaria.postgresql.org; Thu, 27 Mar 2025 21:16:08 +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.94.2) (envelope-from ) id 1txua7-00Dmwd-GA for pgsql-hackers@lists.postgresql.org; Thu, 27 Mar 2025 21:16:07 +0000 Received: from mail-qt1-x832.google.com ([2607:f8b0:4864:20::832]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1txua2-001a8V-1M for pgsql-hackers@lists.postgresql.org; Thu, 27 Mar 2025 21:16:06 +0000 Received: by mail-qt1-x832.google.com with SMTP id d75a77b69052e-477282401b3so15615871cf.1 for ; Thu, 27 Mar 2025 14:16:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dunslane-net.20230601.gappssmtp.com; s=20230601; t=1743110160; x=1743714960; darn=lists.postgresql.org; h=in-reply-to:autocrypt:content-language:from:references:cc:to :subject:user-agent:mime-version:date:message-id:from:to:cc:subject :date:message-id:reply-to; bh=JdjN1KnkorpqoIT5kNwhEkOFAk8uc5WEbZR5B3VsbcE=; b=gASVyS2b9i/0AwnpqUmBjrolAZlMagk+Kho0uCcO6N4FebeS+4pTxIN1Q7q4DDVERZ 1/47u8nHFnsBMpWskVFHllPR++CDulu7kLlMPeu0Tsr9PayZh2HFuDfZ4WNgLVMIlYE/ 2V+PLIm+A2Eb5kK2npaaONsdzD8jW5yXUVCaTJqVFg1razLJexL4e67tq12EufACfYDJ VoVZoUSrX9qLcLFPN9bHB2y6RAtZXbKTA0KHfzYlJHxQ0wfJFZPW/jk6kei6Q7xP0au9 9wfpn9ioDB0I7AO/9DewqSW93n2tdQyrsiUwsZSt6XVn0uJZJGfCCGjx6wuCHz6ozotl ckxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743110160; x=1743714960; h=in-reply-to:autocrypt:content-language:from:references:cc:to :subject:user-agent:mime-version:date:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=JdjN1KnkorpqoIT5kNwhEkOFAk8uc5WEbZR5B3VsbcE=; b=UL9N7ur55jQrcm5TSUQDyQL7mJSCC1hLh+DPhCvfMRfD6D9/K4dyEzPgDwGbc0SVSr t1N8KrqtaQ/htPsGSQq1syMA91ES7drY6IObianHunf64H8II3Te2w+P5JeVXa36PTOG 6j/cFEPfjBuV0YgGd21exIRJ++fnsPpXOVZqA5z93GZT4gDfKQSuZAHeDYwIIMMnY3WR uZ7IfNUB6J6a0GmjpsVLhzGywVim2HevzONzHK1ZR1G9mfft1D4PORG/TsMW0/+6Fci6 YSzWOMGMpXRY/pxeB20voPYdIS9gdINj/0l5ohESBZZL31qMJAomoHBVwnuV4BG7mceC PIZQ== X-Forwarded-Encrypted: i=1; AJvYcCXPD2cVHTW7htkpMALGUJp0+lFWCeMA+EtT8u/EKPADxijekfPHHMPUz2+hQ2GPkUzFx+wtT08B7yz32ZSQ@lists.postgresql.org X-Gm-Message-State: AOJu0YytdkdHtINFBCqb1LLWJP5w6Q78oWw5TORRp44lrScP4BzwOjmQ Bgk4KvKZaktEEwn5jKEX7uGuij1WYdvMqIeXkElVx4X0+aqC6VDsJqJOIBXs+zk= X-Gm-Gg: ASbGnctlrEeGGj4568sMw0Vve7bFM8sEXFLtKXAzfZgFpg6N2oCE5ieOFONMbjdNaYO Cm/AWnHjNooqPq1bc26IZK0nzNHrjAHwjXzy1SrsDoSQqwLZ6gOlrmeNqfWFpz7pTaxelXZCHZb 3D00kuZ55SpdLRCiKjeDcTbatiJskl7h77yi9dV5gfjpbeg91s959e5WktfoWJ63f0D777ZuzY6 0yiT2c0OayCF6rMBoxrUzI8PMh8CUF9jzWV2lMaJnryK6sN6RmMy2dREuBTwNRKgnMjIXTBw++P l6c5J0+1dILoY5NUrQT/jqEgsWa+CPHUECB5pdJDBH9MybuK8VVjd2lQVA1qyxjyjA== X-Google-Smtp-Source: AGHT+IGIexKZDPVK82O3ymUHDapRNN5I5Hds0MHd7mCtFqAEtgXuS0Sfbkx0xjcjnteB6dL8XxMdAA== X-Received: by 2002:ac8:5951:0:b0:477:6ee2:18cd with SMTP id d75a77b69052e-4776ee2199cmr71940221cf.5.1743110159853; Thu, 27 Mar 2025 14:15:59 -0700 (PDT) Received: from ?IPV6:2605:a601:a681:6b00::1cb? ([2605:a601:a681:6b00::1cb]) by smtp.googlemail.com with ESMTPSA id d75a77b69052e-47782a7aad7sm2319911cf.35.2025.03.27.14.15.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 27 Mar 2025 14:15:58 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------Bc5mwmpsrL17Wa0yaZF2P8Yi" Message-ID: Date: Thu, 27 Mar 2025 17:15:57 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Non-text mode for pg_dumpall To: Mahendra Singh Thalor Cc: jian he , =?UTF-8?Q?=C3=81lvaro_Herrera?= , Srinath Reddy , pgsql-hackers@lists.postgresql.org References: <202503111705.xy7fddu36qae@alvherre.pgsql> <4ef51faa-993f-46ea-9e68-7baf736c07b8@dunslane.net> From: Andrew Dunstan Content-Language: en-US Autocrypt: addr=andrew@dunslane.net; keydata= xsBNBE7KWFkBCAClridxur2AIc7eW2AR7izbfp3EnNefie2HbLF0izW5Ik5UjX2HBXBx4syI gY6b0ugohXrr274+baoAlvSbq6cAoQuEVrk5IZFzt20b1Xkx65FwGSEj526yiKLocqkJceSq Xr9xcA5SGY+FZv441chh5SU92v4q6z+6LPpoHOh97ptAVXZYNTtU0LevyvD5lja0TzbvJm6C eFXitJfnm1pLEr0DGJCR/iUOl/N62Kh4855zZC7NHIjQHPOvV5Stz/l5ilDhvGVk+xkXFPys SjZoUr1rXhYLpiyi5sR0X9FHXT0KnGuz1F5ERO7ZTLSSQ6fJwPj6gOk9K+vvoKvoeql5ABEB AAHNJEFuZHJldyBEdW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PsLAmwQTAQgARQIbAwIX gAIZAQULCQgHAgMiAgEGFQoJCAsCBBYCAwECHgcWIQTkPlhGHfx8v0RpFaWZ+n/LWfw7gQUC ZFlxxwUJGVGAbgAKCRCZ+n/LWfw7gXikB/9ZdcUy6CTBFIIuL/bVsc1eLEW/gJBjJBF6HxNY xgEkAgXAp4Lg4A5U+QB9GouFr7+GYxF0BU4hzoGhNPUWltxnHdMWP8nC/38LAqgMi8L/bbsm HW5YPBdWYaAZAPJQVfOAgjTbRUb26KSprpyrrJKW0ZmrZfjhNPcQ72jpWzoPLQqx2X6B0fru 1jq+cBh8lb6r1mJTim1T3JIn+F/v5VpdQS+EL8xqsHkfzKjIPsW3CIXpkypSk6saA55Rkkbl 26AW8ftPVB0Q6Lnn6FLt9CP0MGNixBQ55yq8r1K+nCBvCCjvQjM8RDm0UUum0WNl+ifQgTLO E8TWEnwVtkBf+3QWzsBNBE7KWFkBCADRnOM0FCzsYW6jtncg+dWIagjUZpvaClmqn/sJluLa Q3v1VXMQJzYs3eC1gh386W+XBwLRpDj3jzH81lX+p73Re3d3oJW7X+ffsxuzu5ZVdMUkqBYo nkAbKxr6gyJ12F/+JkUVzLcoTN+d/7YsQvUVi7NaKH8mJgjz112O4fUe3p9wfAaFa0RXHc5S GPzRTYRRlv/XZBIho4J2tkZOnteZJZ+GbxQVlINt6fd8P6al3MWOvpP/ExJPguEfjOsO6Njy xjo3WfpD4lHMOR/Oc3/8mScEF84rF2jXbsFgelWnbPWAvXY+pD0dXOFRkagGmC/viwBDqq5b 5tk76kKmUbZxABEBAAHCwHwEGAEIACYCGwwWIQTkPlhGHfx8v0RpFaWZ+n/LWfw7gQUCZFlx 5wUJGVGAjgAKCRCZ+n/LWfw7gf+iB/4g8CPY5jihf5r/8EsoIGe2H+dpVmpPF8YGBzTIvCz/ fQoOq8AX/pE76QEuFnFZWfjw+wgBXgCVmkox2Eflkk6z4ND3pcwGZ6CfCxTQCDk/dij+2DQ4 6bmDCy/sBgcbz9mTpoLC11HLoPae6YN9nBNQRZDcEFEu54OaVOqlIdbA6m+POIBCXZdHOFc0 WoDTgxHRzC1jgQNidyd6tKqcsVJs0dzF0oKTmFFmUAqTdJO12LBuNA1rlqrR3EtpYk8B/wtS 5dIMD7Q8hwQpL+4C6GNpb6ZKnPkLi47pDOLhz2qBrqN+rqUEsT3YnExYpzj5yOBi+FlmV1Hw 49QYe1sn2ZPs In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------Bc5mwmpsrL17Wa0yaZF2P8Yi Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 2025-03-19 We 2:41 AM, Mahendra Singh Thalor wrote: > On Wed, 12 Mar 2025 at 21:18, Andrew Dunstan wrote: >> >> On 2025-03-12 We 3:03 AM, jian he wrote: >>> On Wed, Mar 12, 2025 at 1:06 AM Álvaro Herrera wrote: >>>> Hello, >>>> >>>> On 2025-Mar-11, Mahendra Singh Thalor wrote: >>>> >>>>> In map.dat file, I tried to fix this issue by adding number of characters >>>>> in dbname but as per code comments, as of now, we are not supporting \n\r >>>>> in dbnames so i removed handling. >>>>> I will do some more study to fix this issue. >>>> Yeah, I think this is saying that you should not consider the contents >>>> of map.dat as a shell string. After all, you're not going to _execute_ >>>> that file via the shell. >>>> >>>> Maybe for map.dat you need to escape such characters somehow, so that >>>> they don't appear as literal newlines/carriage returns. >>>> >>> I am confused. >>> currently pg_dumpall plain format will abort when encountering dbname >>> containing newline. >>> the left dumped plain file does not contain all the cluster databases data. >>> >>> >>> if pg_dumpall non-text format aborts earlier, >>> it's aligned with pg_dumpall plain format? >>> it's also an improvement since aborts earlier, nothing will be dumped? >>> >>> >>> am i missing something? >>> >>> >> I think we should fix that. >> >> But for the current proposal, Álvaro and I were talking this morning, >> and we thought the simplest thing here would be to have the one line >> format and escape NL/CRs in the database name. >> >> >> cheers >> > Okay. As per discussions, we will keep one line entry for each > database into map.file. > > Thanks all for feedback and review. > > Here, I am attaching updated patches for review and testing. These > patches can be applied on commit a6524105d20b. I'm working through this patch set with a view to committing it. Attached is some cleanup which is where I got to today, although there is more to do. One thing I am wondering is why not put the SimpleDatabaseOidList stuff in fe_utils/simle_list.{c,h} ? That's where all the similar stuff belongs, and it feels strange to have this inline in pg_restore.c. (I also don't like the name much - SimpleOidStringList or maybe SimpleOidPlusStringList might be better). cheers andrew -- Andrew Dunstan EDB: https://www.enterprisedb.com --------------Bc5mwmpsrL17Wa0yaZF2P8Yi Content-Type: text/plain; charset=UTF-8; name="dumpall_cleanup.patch-noci" Content-Disposition: attachment; filename="dumpall_cleanup.patch-noci" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wYWxsLmMgYi9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcGFsbC5jCmluZGV4IGEzZGNjNTg1YWNlLi42YWFiMWJmZTgzMSAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBhbGwuYworKysgYi9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcGFsbC5jCkBAIC00MzQsMTMgKzQzNCwxMyBAQCBtYWluKGludCBhcmdj LCBjaGFyICphcmd2W10pCiAJYXJjaER1bXBGb3JtYXQgPSBwYXJzZUR1bXBGb3JtYXQoZm9y bWF0TmFtZSk7CiAKIAkvKgotCSAqIElmIG5vbi1wbGFpbiBmb3JtYXQgaXMgc3BlY2lmaWVk IHRoZW4gd2UgbXVzdCBwcm92aWRlIHRoZQotCSAqIGZpbGUgbmFtZSB0byBjcmVhdGUgb25l IG1haW4gZGlyZWN0b3J5LgorCSAqIElmIGEgbm9uLXBsYWluIGZvcm1hdCBpcyBzcGVjaWZp ZWQsIGEgZmlsZSBuYW1lIGlzIGFsc28gcmVxdWlyZWQgYXMgdGhlCisJICogcGF0aCB0byB0 aGUgbWFpbiBkaXJlY3RvcnkuCiAJICovCiAJaWYgKGFyY2hEdW1wRm9ybWF0ICE9IGFyY2hO dWxsICYmCiAJCQkoIWZpbGVuYW1lIHx8IHN0cmNtcChmaWxlbmFtZSwgIiIpID09IDApKQog CXsKLQkJcGdfbG9nX2Vycm9yKCJvcHRpb25zIC1GLy0tZm9ybWF0PWR8Y3x0IHJlcXVpcmVz IG9wdGlvbiAtZi8tLWZpbGUgd2l0aCBub24tZW1wdHkgc3RyaW5nIik7CisJCXBnX2xvZ19l cnJvcigib3B0aW9uIC1GLy0tZm9ybWF0PWR8Y3x0IHJlcXVpcmVzIG9wdGlvbiAtZi8tLWZp bGUiKTsKIAkJcGdfbG9nX2Vycm9yX2hpbnQoIlRyeSBcIiVzIC0taGVscFwiIGZvciBtb3Jl IGluZm9ybWF0aW9uLiIsIHByb2duYW1lKTsKIAkJZXhpdF9uaWNlbHkoMSk7CiAJfQpAQCAt NTEzLDE0ICs1MTMsMTQgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCSAqLwog CWlmIChhcmNoRHVtcEZvcm1hdCAhPSBhcmNoTnVsbCkKIAl7Ci0JCWNoYXIJdG9jX3BhdGhb TUFYUEdQQVRIXTsKKwkJY2hhcglnbG9iYWxfcGF0aFtNQVhQR1BBVEhdOwogCiAJCS8qIENy ZWF0ZSBuZXcgZGlyZWN0b3J5IG9yIGFjY2VwdCB0aGUgZW1wdHkgZXhpc3RpbmcgZGlyZWN0 b3J5LiAqLwogCQljcmVhdGVfb3Jfb3Blbl9kaXIoZmlsZW5hbWUpOwogCi0JCXNucHJpbnRm KHRvY19wYXRoLCBNQVhQR1BBVEgsICIlcy9nbG9iYWwuZGF0IiwgZmlsZW5hbWUpOworCQlz bnByaW50ZihnbG9iYWxfcGF0aCwgTUFYUEdQQVRILCAiJXMvZ2xvYmFsLmRhdCIsIGZpbGVu YW1lKTsKIAotCQlPUEYgPSBmb3Blbih0b2NfcGF0aCwgUEdfQklOQVJZX1cpOworCQlPUEYg PSBmb3BlbihnbG9iYWxfcGF0aCwgUEdfQklOQVJZX1cpOwogCQlpZiAoIU9QRikKIAkJCXBn X2ZhdGFsKCJjb3VsZCBub3Qgb3BlbiBnbG9iYWwuZGF0IGZpbGU6ICVzIiwgc3RyZXJyb3Io ZXJybm8pKTsKIAl9CkBAIC0xNjgwLDcgKzE2ODAsNyBAQCBkdW1wRGF0YWJhc2VzKFBHY29u biAqY29ubiwgQXJjaGl2ZUZvcm1hdCBhcmNoRHVtcEZvcm1hdCkKIAkJfQogCiAJCS8qCi0J CSAqIElmIHRoaXMgaXMgbm9uLXBsYWluIGR1bXAgZm9ybWF0LCB0aGVuIGFwcGVuZCBkYm9p ZCBhbmQgZGJuYW1lIHRvCisJCSAqIElmIHRoaXMgaXMgbm90IGEgcGxhaW4gZm9ybWF0IGR1 bXAsIHRoZW4gYXBwZW5kIGRib2lkIGFuZCBkYm5hbWUgdG8KIAkJICogdGhlIG1hcC5kYXQg ZmlsZS4KIAkJICovCiAJCWlmIChhcmNoRHVtcEZvcm1hdCAhPSBhcmNoTnVsbCkKQEAgLTE2 ODgsNyArMTY4OCw3IEBAIGR1bXBEYXRhYmFzZXMoUEdjb25uICpjb25uLCBBcmNoaXZlRm9y bWF0IGFyY2hEdW1wRm9ybWF0KQogCQkJc25wcmludGYoZGJmaWxlcGF0aCwgTUFYUEdQQVRI LCAiXCIlc1wiL1wiJXNcIiIsIGRiX3N1YmRpciwgb2lkKTsKIAogCQkJLyogUHV0IG9uZSBs aW5lIGVudHJ5IGZvciBkYm9pZCBhbmQgZGJuYW1lIGluIG1hcCBmaWxlLiAqLwotCQkJZnBy aW50ZihtYXBfZmlsZSwgIiVzICVzXG4iLCBvaWQsIHBnX3N0cmR1cChkYm5hbWUpKTsKKwkJ CWZwcmludGYobWFwX2ZpbGUsICIlcyAlc1xuIiwgb2lkLCBkYm5hbWUpOwogCQl9CiAKIAkJ cGdfbG9nX2luZm8oImR1bXBpbmcgZGF0YWJhc2UgXCIlc1wiIiwgZGJuYW1lKTsKQEAgLTE3 MzQsMTcgKzE3MzQsMTcgQEAgZHVtcERhdGFiYXNlcyhQR2Nvbm4gKmNvbm4sIEFyY2hpdmVG b3JtYXQgYXJjaER1bXBGb3JtYXQpCiAKIAkJaWYgKGZpbGVuYW1lKQogCQl7Ci0JCQljaGFy CXRvY19wYXRoW01BWFBHUEFUSF07CisJCQljaGFyCWdsb2JhbF9wYXRoW01BWFBHUEFUSF07 CiAKIAkJCWlmIChhcmNoRHVtcEZvcm1hdCAhPSBhcmNoTnVsbCkKLQkJCQlzbnByaW50Zih0 b2NfcGF0aCwgTUFYUEdQQVRILCAiJXMvZ2xvYmFsLmRhdCIsIGZpbGVuYW1lKTsKKwkJCQlz bnByaW50ZihnbG9iYWxfcGF0aCwgTUFYUEdQQVRILCAiJXMvZ2xvYmFsLmRhdCIsIGZpbGVu YW1lKTsKIAkJCWVsc2UKLQkJCQlzbnByaW50Zih0b2NfcGF0aCwgTUFYUEdQQVRILCAiJXMi LCBmaWxlbmFtZSk7CisJCQkJc25wcmludGYoZ2xvYmFsX3BhdGgsIE1BWFBHUEFUSCwgIiVz IiwgZmlsZW5hbWUpOwogCi0JCQlPUEYgPSBmb3Blbih0b2NfcGF0aCwgUEdfQklOQVJZX0Ep OworCQkJT1BGID0gZm9wZW4oZ2xvYmFsX3BhdGgsIFBHX0JJTkFSWV9BKTsKIAkJCWlmICgh T1BGKQogCQkJCXBnX2ZhdGFsKCJjb3VsZCBub3QgcmUtb3BlbiB0aGUgb3V0cHV0IGZpbGUg XCIlc1wiOiAlbSIsCi0JCQkJCQkgdG9jX3BhdGgpOworCQkJCQkJIGdsb2JhbF9wYXRoKTsK IAkJfQogCX0KIApAQCAtMTc3Miw3ICsxNzcyLDcgQEAgcnVuUGdEdW1wKGNvbnN0IGNoYXIg KmRibmFtZSwgY29uc3QgY2hhciAqY3JlYXRlX29wdHMsIGNoYXIgKmRiZmlsZSwKIAlpbml0 UFFFeHBCdWZmZXIoJmNtZCk7CiAKIAkvKgotCSAqIElmIHRoaXMgaXMgbm9uLXBsYWluIGZv cm1hdCBkdW1wLCB0aGVuIGFwcGVuZCBmaWxlIG5hbWUgYW5kIGR1bXAKKwkgKiBJZiB0aGlz IGlzIG5vdCBhIHBsYWluIGZvcm1hdCBkdW1wLCB0aGVuIGFwcGVuZCBmaWxlIG5hbWUgYW5k IGR1bXAKIAkgKiBmb3JtYXQgdG8gdGhlIHBnX2R1bXAgY29tbWFuZCB0byBnZXQgYXJjaGl2 ZSBkdW1wLgogCSAqLwogCWlmIChhcmNoRHVtcEZvcm1hdCAhPSBhcmNoTnVsbCkKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMgYi9zcmMvYmluL3BnX2R1bXAv cGdfcmVzdG9yZS5jCmluZGV4IGU0MDkzNDI3ZTJmLi45MTYwMmEyZTM3YiAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jlc3RvcmUuYworKysgYi9zcmMvYmluL3BnX2R1bXAv cGdfcmVzdG9yZS5jCkBAIC00Niw4ICs0Niw2IEBACiAjaW5jbHVkZSA8dGVybWlvcy5oPgog I2VuZGlmCiAKLSNpbmNsdWRlICJjb21tb24vY29ubmVjdC5oIgotI2luY2x1ZGUgImNvbXBy ZXNzX2lvLmgiCiAjaW5jbHVkZSAiY29tbW9uL3N0cmluZy5oIgogI2luY2x1ZGUgImNvbm5l Y3RkYi5oIgogI2luY2x1ZGUgImZlX3V0aWxzL29wdGlvbl91dGlscy5oIgpAQCAtNTUsNyAr NTMsNiBAQAogI2luY2x1ZGUgImZpbHRlci5oIgogI2luY2x1ZGUgImdldG9wdF9sb25nLmgi CiAjaW5jbHVkZSAicGFyYWxsZWwuaCIKLSNpbmNsdWRlICJwZ19iYWNrdXBfYXJjaGl2ZXIu aCIKICNpbmNsdWRlICJwZ19iYWNrdXBfdXRpbHMuaCIKIAogdHlwZWRlZiBzdHJ1Y3QgU2lt cGxlRGF0YWJhc2VPaWRMaXN0Q2VsbApAQCAtNzMsMTAgKzcwLDEwIEBAIHR5cGVkZWYgc3Ry dWN0IFNpbXBsZURhdGFiYXNlT2lkTGlzdAogCiBzdGF0aWMgdm9pZCB1c2FnZShjb25zdCBj aGFyICpwcm9nbmFtZSk7CiBzdGF0aWMgdm9pZCByZWFkX3Jlc3RvcmVfZmlsdGVycyhjb25z dCBjaGFyICpmaWxlbmFtZSwgUmVzdG9yZU9wdGlvbnMgKm9wdHMpOwotc3RhdGljIGJvb2wg SXNGaWxlRXhpc3RzSW5EaXJlY3RvcnkoY29uc3QgY2hhciAqZGlyLCBjb25zdCBjaGFyICpm aWxlbmFtZSk7CitzdGF0aWMgYm9vbCBmaWxlX2V4aXN0c19pbl9kaXJlY3RvcnkoY29uc3Qg Y2hhciAqZGlyLCBjb25zdCBjaGFyICpmaWxlbmFtZSk7CiBzdGF0aWMgaW50IHJlc3RvcmVP bmVEYXRhYmFzZShjb25zdCBjaGFyICppbnB1dEZpbGVTcGVjLCBSZXN0b3JlT3B0aW9ucyAq b3B0cywKIAkJCQkJCQkgIGludCBudW1Xb3JrZXJzLCBib29sIGFwcGVuZF9kYXRhLCBpbnQg bnVtKTsKLXN0YXRpYyBpbnQgUmVhZE9uZVN0YXRlbWVudChTdHJpbmdJbmZvIGluQnVmLCBG SUxFICpwZmlsZSk7CitzdGF0aWMgaW50IHJlYWRfb25lX3N0YXRlbWVudChTdHJpbmdJbmZv IGluQnVmLCBGSUxFICpwZmlsZSk7CiBzdGF0aWMgaW50IHJlc3RvcmVBbGxEYXRhYmFzZXMo UEdjb25uICpjb25uLCBjb25zdCBjaGFyICpkdW1wZGlycGF0aCwKIAkJCQkJCQkgICBTaW1w bGVTdHJpbmdMaXN0IGRiX2V4Y2x1ZGVfcGF0dGVybnMsIFJlc3RvcmVPcHRpb25zICpvcHRz LCBpbnQgbnVtV29ya2Vycyk7CiBzdGF0aWMgaW50IHByb2Nlc3NfZ2xvYmFsX3NxbF9jb21t YW5kcyhQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKmR1bXBkaXJwYXRoLApAQCAtODksNyAr ODYsNiBAQCBzdGF0aWMgaW50IGdldF9kYm5hbWVfb2lkX2xpc3RfZnJvbV9tZmlsZShjb25z dCBjaGFyICpkdW1wZGlycGF0aCwKIAkJCQkJCQkJCQkgIFNpbXBsZURhdGFiYXNlT2lkTGlz dCAqZGJuYW1lX29pZF9saXN0KTsKIHN0YXRpYyB2b2lkIHNpbXBsZV9kYl9vaWRfbGlzdF9h cHBlbmQoU2ltcGxlRGF0YWJhc2VPaWRMaXN0ICpsaXN0LCBPaWQgZGJfb2lkLAogCQkJCQkJ CQkJICBjb25zdCBjaGFyICpkYm5hbWUpOwotc3RhdGljIHZvaWQgc2ltcGxlX3N0cmluZ19m dWxsX2xpc3RfZGVsZXRlKFNpbXBsZVN0cmluZ0xpc3QgKmxpc3QpOwogc3RhdGljIHZvaWQg c2ltcGxlX2RiX29pZF9mdWxsX2xpc3RfZGVsZXRlKFNpbXBsZURhdGFiYXNlT2lkTGlzdCAq bGlzdCk7CiBzdGF0aWMgdm9pZCBzaW1wbGVfZGJfb2lkX2xpc3RfZGVsZXRlKFNpbXBsZURh dGFiYXNlT2lkTGlzdCAqbGlzdCwKIAkJCQkJCQkJCSAgU2ltcGxlRGF0YWJhc2VPaWRMaXN0 Q2VsbCAqY2VsbCwKQEAgLTUyMSw4ICs1MTcsOCBAQCBtYWluKGludCBhcmdjLCBjaGFyICoq YXJndikKIAkgKiBkYXRhYmFzZXMgZnJvbSBtYXAuZGF0KGlmIGV4aXN0KSBmaWxlIGxpc3Qg YW5kIHNraXAgcmVzdG9yaW5nIGZvcgogCSAqIC0tZXhjbHVkZS1kYXRhYmFzZSBwYXR0ZXJu cy4KIAkgKi8KLQlpZiAoaW5wdXRGaWxlU3BlYyAhPSBOVUxMICYmICFJc0ZpbGVFeGlzdHNJ bkRpcmVjdG9yeShpbnB1dEZpbGVTcGVjLCAidG9jLmRhdCIpICYmCi0JCQlJc0ZpbGVFeGlz dHNJbkRpcmVjdG9yeShpbnB1dEZpbGVTcGVjLCAiZ2xvYmFsLmRhdCIpKQorCWlmIChpbnB1 dEZpbGVTcGVjICE9IE5VTEwgJiYgIWZpbGVfZXhpc3RzX2luX2RpcmVjdG9yeShpbnB1dEZp bGVTcGVjLCAidG9jLmRhdCIpICYmCisJCQlmaWxlX2V4aXN0c19pbl9kaXJlY3RvcnkoaW5w dXRGaWxlU3BlYywgImdsb2JhbC5kYXQiKSkKIAl7CiAJCVBHY29ubiAgKmNvbm4gPSBOVUxM OyAvKiBDb25uZWN0aW9uIHRvIHJlc3RvcmUgZ2xvYmFsIHNxbCBjb21tYW5kcy4gKi8KIApA QCAtNTc4LDcgKzU3NCw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQl9CiAK IAkJLyogRnJlZSBkYiBwYXR0ZXJuIGxpc3QuICovCi0JCXNpbXBsZV9zdHJpbmdfZnVsbF9s aXN0X2RlbGV0ZSgmZGJfZXhjbHVkZV9wYXR0ZXJucyk7CisJCXNpbXBsZV9zdHJpbmdfbGlz dF9kZXN0cm95KCZkYl9leGNsdWRlX3BhdHRlcm5zKTsKIAl9CiAJZWxzZSAvKiBwcm9jZXNz IGlmIGdsb2JhbC5kYXQgZmlsZSBkb2VzIG5vdCBleGlzdC4gKi8KIAl7CkBAIC04NDcsMTIg Kzg0MywxMiBAQCByZWFkX3Jlc3RvcmVfZmlsdGVycyhjb25zdCBjaGFyICpmaWxlbmFtZSwg UmVzdG9yZU9wdGlvbnMgKm9wdHMpCiB9CiAKIC8qCi0gKiBJc0ZpbGVFeGlzdHNJbkRpcmVj dG9yeQorICogZmlsZV9leGlzdHNfaW5fZGlyZWN0b3J5CiAgKgogICogUmV0dXJucyB0cnVl IGlmIGZpbGUgZXhpc3QgaW4gY3VycmVudCBkaXJlY3RvcnkuCiAgKi8KIHN0YXRpYyBib29s Ci1Jc0ZpbGVFeGlzdHNJbkRpcmVjdG9yeShjb25zdCBjaGFyICpkaXIsIGNvbnN0IGNoYXIg KmZpbGVuYW1lKQorZmlsZV9leGlzdHNfaW5fZGlyZWN0b3J5KGNvbnN0IGNoYXIgKmRpciwg Y29uc3QgY2hhciAqZmlsZW5hbWUpCiB7CiAJc3RydWN0IHN0YXQJCQlzdDsKIAljaGFyCQkJ CWJ1ZltNQVhQR1BBVEhdOwpAQCAtODY0LDcgKzg2MCw3IEBAIElzRmlsZUV4aXN0c0luRGly ZWN0b3J5KGNvbnN0IGNoYXIgKmRpciwgY29uc3QgY2hhciAqZmlsZW5hbWUpCiB9CiAKIC8q Ci0gKiBSZWFkT25lU3RhdGVtZW50CisgKiByZWFkX29uZV9zdGF0ZW1lbnQKICAqCiAgKiBU aGlzIHdpbGwgc3RhcnQgcmVhZGluZyBmcm9tIHBhc3NlZCBmaWxlIHBvaW50ZXIgdXNpbmcg ZmdldGMgYW5kIHJlYWQgdGlsbAogICogc2VtaWNvbG9uKHNxbCBzdGF0ZW1lbnQgdGVybWlu YXRvciBmb3IgZ2xvYmFsLmRhdCBmaWxlKQpAQCAtODczLDcgKzg2OSw3IEBAIElzRmlsZUV4 aXN0c0luRGlyZWN0b3J5KGNvbnN0IGNoYXIgKmRpciwgY29uc3QgY2hhciAqZmlsZW5hbWUp CiAgKi8KIAogc3RhdGljIGludAotUmVhZE9uZVN0YXRlbWVudChTdHJpbmdJbmZvIGluQnVm LCBGSUxFICpwZmlsZSkKK3JlYWRfb25lX3N0YXRlbWVudChTdHJpbmdJbmZvIGluQnVmLCBG SUxFICpwZmlsZSkKIHsKIAlpbnQJCQljOyAvKiBjaGFyYWN0ZXIgcmVhZCBmcm9tIGdldGMo KSAqLwogCWludAkJCW07CkBAIC0xMDY0LDcgKzEwNjAsNyBAQCBnZXRfZGJuYW1lX29pZF9s aXN0X2Zyb21fbWZpbGUoY29uc3QgY2hhciAqZHVtcGRpcnBhdGgsIFNpbXBsZURhdGFiYXNl T2lkTGlzdCAqZAogCSAqIElmIHRoZXJlIGlzIG9ubHkgZ2xvYmFsLmRhdCBmaWxlIGluIGR1 bXAsIHRoZW4gcmV0dXJuIGZyb20gaGVyZSBhcyB0aGVyZQogCSAqIGlzIG5vIGRhdGFiYXNl IHRvIHJlc3RvcmUuCiAJICovCi0JaWYgKCFJc0ZpbGVFeGlzdHNJbkRpcmVjdG9yeShwZ19z dHJkdXAoZHVtcGRpcnBhdGgpLCAibWFwLmRhdCIpKQorCWlmICghZmlsZV9leGlzdHNfaW5f ZGlyZWN0b3J5KGR1bXBkaXJwYXRoLCAibWFwLmRhdCIpKQogCXsKIAkJcGdfbG9nX2luZm8o ImRhdGFiYXNlcyByZXN0b3JpbmcgaXMgc2tpcHBlZCBhcyBtYXAuZGF0IGZpbGUgaXMgbm90 IHByZXNlbnQgaW4gXCIlc1wiIiwgZHVtcGRpcnBhdGgpOwogCQlyZXR1cm4gMDsKQEAgLTEy ODEsNyArMTI3Nyw3IEBAIHByb2Nlc3NfZ2xvYmFsX3NxbF9jb21tYW5kcyhQR2Nvbm4gKmNv bm4sIGNvbnN0IGNoYXIgKmR1bXBkaXJwYXRoLCBjb25zdCBjaGFyICpvCiAJaW5pdFN0cmlu Z0luZm8oJnNxbHN0YXRlbWVudCk7CiAKIAkvKiBQcm9jZXNzIGZpbGUgdGlsbCBFT0YgYW5k IGV4ZWN1dGUgc3FsIHN0YXRlbWVudHMuICovCi0Jd2hpbGUgKFJlYWRPbmVTdGF0ZW1lbnQo JnNxbHN0YXRlbWVudCwgcGZpbGUpICE9IEVPRikKKwl3aGlsZSAocmVhZF9vbmVfc3RhdGVt ZW50KCZzcWxzdGF0ZW1lbnQsIHBmaWxlKSAhPSBFT0YpCiAJewogCQlwZ19sb2dfaW5mbygi ZXhlY3V0aW5nIHF1ZXJ5OiAlcyIsIHNxbHN0YXRlbWVudC5kYXRhKTsKIAkJcmVzdWx0ID0g UFFleGVjKGNvbm4sIHNxbHN0YXRlbWVudC5kYXRhKTsKQEAgLTEzOTMsMjggKzEzODksNiBA QCBzaW1wbGVfZGJfb2lkX2Z1bGxfbGlzdF9kZWxldGUoU2ltcGxlRGF0YWJhc2VPaWRMaXN0 ICpsaXN0KQogCWxpc3QtPnRhaWwgPSBOVUxMOwogfQogCi0vKgotICogc2ltcGxlX3N0cmlu Z19mdWxsX2xpc3RfZGVsZXRlCi0gKgotICogZGVsZXRlIGFsbCBjZWxsIGZyb20gc3RyaW5n IGxpc3QuCi0gKi8KLXN0YXRpYyB2b2lkCi1zaW1wbGVfc3RyaW5nX2Z1bGxfbGlzdF9kZWxl dGUoU2ltcGxlU3RyaW5nTGlzdCAqbGlzdCkKLXsKLQlTaW1wbGVTdHJpbmdMaXN0Q2VsbAkq Y2VsbCA9IGxpc3QtPmhlYWQ7Ci0JU2ltcGxlU3RyaW5nTGlzdENlbGwgICAgKmNlbGxuZXh0 ID0gTlVMTDsKLQotCXdoaWxlIChjZWxsKQotCXsKLQkJY2VsbG5leHQgPSBjZWxsLT5uZXh0 OwotCQlwZnJlZShjZWxsKTsKLQkJY2VsbCA9IGNlbGxuZXh0OwotCX0KLQotCWxpc3QtPmhl YWQgPSBOVUxMOwotCWxpc3QtPnRhaWwgPSBOVUxMOwotfQotCiAvKgogICogc2ltcGxlX2Ri X29pZF9saXN0X2RlbGV0ZQogICoK --------------Bc5mwmpsrL17Wa0yaZF2P8Yi--