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 1oFzGf-0001WR-Uv for pgsql-hackers@arkaria.postgresql.org; Mon, 25 Jul 2022 14:41:09 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oFzGd-0000ae-Kn for pgsql-hackers@arkaria.postgresql.org; Mon, 25 Jul 2022 14:41:07 +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 1oFzGd-0000Zw-AL for pgsql-hackers@lists.postgresql.org; Mon, 25 Jul 2022 14:41:07 +0000 Received: from mout-b-206.mailbox.org ([2001:67c:2050:102:465::206]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oFzGX-00042o-Hn for pgsql-hackers@lists.postgresql.org; Mon, 25 Jul 2022 14:41:06 +0000 Received: from smtp202.mailbox.org (smtp202.mailbox.org [10.196.197.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-b-206.mailbox.org (Postfix) with ESMTPS id 4Ls2ln0Ct5z9slq for ; Mon, 25 Jul 2022 16:40:53 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aboutsource.net; s=MBO0001; t=1658760053; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type; bh=l2c27KT7IUQloNA7B6Y8TedVfrsuiIBfDjDTnuysswo=; b=Mz4GDAh5r3bYiMzl48y4Ufkd/K53c1DJg3ZXzm+R8lgQCzhRUEvOyt5B0RmtBugppRXWS+ zGl0lo8N/Z3PPmoMz8s3rFoo4hk3U2OTNzGhc73qkn+WKcxv/LErUREDPoL5DU7qQ+BiQX vRWa39669BYd4pamyq5sls95zhLaAwV5VPZf6I1s7BcAGrpJoJXmDLo6NIZLfOZYfl5jH0 5hAWURmjykiDOa6eLjZwuwZwmJEToB0JKlOZ2YW9V5Wes5kuhMuq2KphXmfsIu+83MOhEY OGCUE9trNawA35j9/lC/20AV51EYLDsr6iHGpc/aA7YUpR2GsP1pT4Dc2OvQDA== Content-Type: multipart/mixed; boundary="------------CqHESYGKODFFVmsagZW1nygn" Message-ID: Date: Mon, 25 Jul 2022 16:40:51 +0200 MIME-Version: 1.0 Content-Language: de-DE To: PostgreSQL Hackers From: Martin Kalcher Subject: [Patch] Fix bounds check in trim_array() 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. --------------CqHESYGKODFFVmsagZW1nygn Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, while working on something else i encountered a bug in the trim_array() function. The bounds check fails for empty arrays without any dimensions. It reads the size of the non existing first dimension to determine the arrays length. select trim_array('{}'::int[], 10); ------------ {} select trim_array('{}'::int[], 100); ERROR: number of elements to trim must be between 0 and 64 The attached patch fixes that check. Martin --------------CqHESYGKODFFVmsagZW1nygn Content-Type: text/x-patch; charset=UTF-8; name="0001-Fix-bounds-check-in-trim_array.patch" Content-Disposition: attachment; filename="0001-Fix-bounds-check-in-trim_array.patch" Content-Transfer-Encoding: base64 RnJvbSBiNjE3M2E4ZjhmOTRjZGRkNTM0N2RiNDgyYjhlNDQ4MGMwZTU0NmU3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gS2FsY2hlciA8bWFydGluLmthbGNoZXJA YWJvdXRzb3VyY2UubmV0PgpEYXRlOiBNb24sIDI1IEp1bCAyMDIyIDE2OjI2OjE0ICswMjAw ClN1YmplY3Q6IFtQQVRDSF0gRml4IGJvdW5kcyBjaGVjayBpbiB0cmltX2FycmF5KCkKClRo ZSBib3VuZHMgY2hlY2sgaW4gdHJpbV9hcnJheSgpIGZhaWxlZCBmb3IgZW1wdHkgYXJyYXlz IHdpdGhvdXQgYW55CmRpbWVuc2lvbi4gSXQgcmVhZCB0aGUgc2l6ZSBvZiB0aGUgZmlyc3Qg ZGltZW5zaW9uIHdpdGhvdXQgY2hlY2tpbmcgaXRzCmV4aXN0ZW5jZS4KLS0tCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jICAgfCAyICstCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2FycmF5cy5vdXQgfCAyICsrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9hcnJh eXMuc3FsICAgICAgfCAxICsKIDMgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5 ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMKaW5kZXggZmIx NjdmMjI2YS4uMDM0MmViZjRmZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2FycmF5ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5j CkBAIC02ODM5LDcgKzY4MzksNyBAQCB0cmltX2FycmF5KFBHX0ZVTkNUSU9OX0FSR1MpCiB7 CiAJQXJyYXlUeXBlICAqdiA9IFBHX0dFVEFSR19BUlJBWVRZUEVfUCgwKTsKIAlpbnQJCQlu ID0gUEdfR0VUQVJHX0lOVDMyKDEpOwotCWludAkJCWFycmF5X2xlbmd0aCA9IEFSUl9ESU1T KHYpWzBdOworCWludAkJCWFycmF5X2xlbmd0aCA9IChBUlJfTkRJTSh2KSA+IDApID8gQVJS X0RJTVModilbMF0gOiAwOwogCWludDE2CQllbG1sZW47CiAJYm9vbAkJZWxtYnl2YWw7CiAJ Y2hhcgkJZWxtYWxpZ247CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2FycmF5cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FycmF5cy5vdXQKaW5k ZXggY2U2ZjNhNjVmOS4uOTc5MjBmMzhjMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9hcnJheXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv YXJyYXlzLm91dApAQCAtMjQ0NSwzICsyNDQ1LDUgQEAgU0VMRUNUIHRyaW1fYXJyYXkoQVJS QVlbMSwgMiwgM10sIC0xKTsgLS0gZmFpbAogRVJST1I6ICBudW1iZXIgb2YgZWxlbWVudHMg dG8gdHJpbSBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMwogU0VMRUNUIHRyaW1fYXJyYXkoQVJS QVlbMSwgMiwgM10sIDEwKTsgLS0gZmFpbAogRVJST1I6ICBudW1iZXIgb2YgZWxlbWVudHMg dG8gdHJpbSBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMworU0VMRUNUIHRyaW1fYXJyYXkoQVJS QVlbXTo6aW50W10sIDEpOyAtLSBmYWlsCitFUlJPUjogIG51bWJlciBvZiBlbGVtZW50cyB0 byB0cmltIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAwCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9hcnJheXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYXJyYXlzLnNx bAppbmRleCBmNzc0ZmFmODU2Li43OTFhZjVjMGNlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9hcnJheXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2FycmF5 cy5zcWwKQEAgLTc1NCwzICs3NTQsNCBAQCBGUk9NCiAKIFNFTEVDVCB0cmltX2FycmF5KEFS UkFZWzEsIDIsIDNdLCAtMSk7IC0tIGZhaWwKIFNFTEVDVCB0cmltX2FycmF5KEFSUkFZWzEs IDIsIDNdLCAxMCk7IC0tIGZhaWwKK1NFTEVDVCB0cmltX2FycmF5KEFSUkFZW106OmludFtd LCAxKTsgLS0gZmFpbAotLSAKMi4zNy4xCgo= --------------CqHESYGKODFFVmsagZW1nygn--