출시 날짜 :2025-02-13
이 와이즈 토토에는 13.18의 다양한 수정 사항이 포함되어 있습니다. Major Release 13의 새로운 기능에 대한 정보는 참조섹션 E.21.
the와이즈 토토커뮤니티는 2025 년 11 월 13.x 릴리스 시리즈의 업데이트 출시를 중단합니다. 사용자는 곧 새로운 릴리스 지점으로 업데이트하는 것이 좋습니다.
13.x.를 실행하는 사람들에게는 덤프/복원이 필요하지 않습니다.
그러나 13.17 이전 버전에서 업그레이드하는 경우 참조섹션 E.4.
HardenPQescapestring
및 유효하지 않은 입력 문자열에 대한 동맹 기능 (Andres Freund, Noah Misch)§ § § § § § §
데이터 크기의 기능libpq이제 입력의 인코딩 유효성을 완전히 확인하십시오. 잘못된 문자가 감지되면 가능한 경우 오류를보고합니다.
이 변경의 목적은 이러한 기능 중 하나가 제작 된 입력을 인용하는 데 사용되는 경우 가능한 SQL 주입 공격을 방지하는 것입니다. 결과 문자열이 a로 직접 전송 될 때 위험이 없습니다.와이즈 토토서버 (어쨌든 인코딩을 확인할 것임)이지만 통과 할 때 위험이 있습니다PSQL또는 기타 클라이언트 측 코드. 역사적으로 그러한 코드는 신중하게 인코딩을 조사하지 않았으며, 많은 경우 그러한 문제를 감지했을 때 어떻게 해야하는지 명확하지 않습니다.
이 수정은 데이터 인용 기능, 서버 및 중간 처리가 사용되는 문자 인코딩에 동의하는 경우에만 효과적입니다. 신뢰할 수없는 입력을 SQL 명령에 삽입하는 응용 프로그램은 그것이 사실인지 확인하기 위해 특별한주의를 기울여야합니다.
이것들을 사용하지 않고 신뢰할 수없는 입력을 견적하는 응용 프로그램 및 드라이버libpq기능은 비슷한 문제의 위험에 처할 수 있습니다. 먼저 서버에서 예상되는 인코딩에서 데이터가 유효한지 확인해야합니다.
the와이즈 토토Project Thanks Thanks Stephen이 문제를보고하는 데 더 적게. (CVE-2025-1094)
연결 권한 검사 및 한도에서 병렬 작업자 제외 (Tom Lane)§
확인하지 마십시오datallowconn
, rolcanlogin
및acl_connect
병렬 작업자를 시작할 때의 권한은 리더 프로세스가 원래 비슷한 점검을 통과하기에 충분하다고 가정합니다. 예를 들어, 리더가 로그인 권한이없는 역할로 실행중인 경우 병렬 쿼리의 예기치 않은 실패를 피합니다.예비 연결
, datconnlimit
및rolconnlimit
정기적 인 백엔드에 대한 제한 만 제한을하고 한도가 이미 도달했는지 확인하는 동안 정기적 인 백엔드 만 계산합니다. 이러한 제한은 일반 백엔드에 대한 프로세스 슬롯의 과도한 소비를 방지하기위한 것이지만, 평행 작업자 및 기타 특수 프로세스에는 자체 한계 점검이있는 자체 프로세스 슬롯 풀이 있습니다..
KEEPTransactionXmin
와 동기화MyProc-> Xmin
(Heikki Linnakangas)§
이 감독은 프로세스가 이미 진공 청소 된 데이터에 액세스하려고 시도 할 수 있습니다. 알려진 결과 중 하나는 일시적입니다“거래 상태에 액세스 할 수 없음”오류.
카탈로그 캐시 목록 (Heikki Linnakangas)에 새로 삽입 된 카탈로그 항목을 추가하지 못할 수있는 레이스 조건을 수정합니다.§
예를 들어 기존 세션 내에서 새로 만들어진 함수를 사용하지 않아 발생할 수 있습니다.
시스템 카탈로그가 업데이트 (Noah Misch)와 동시에 진공 상태로 진공 상태로 발생할 때 가능한 카탈로그 손상 방지§
관계 자리가 실패 할 때 데이터 손상 수정 (Thomas Munro)§ § §
관계 자르기를 수행하는 데 필요한 파일 시스템 호출은 실패 할 수 있으며, 디스크에 일관성이없는 상태를 남깁니다 (예 : 삭제 된 데이터를 효과적으로 부활). 우리는 실제로 그것을 막을 수는 없지만, 그러한 실패를 공황에 빠뜨리는 것을 통해 복구 할 수 있으므로, 잘라 내기 직전까지 WAL에서 재생하여 일관성이 회복됩니다.
관계 자르기 중에 체크 포인트가 시작되는 것을 방지합니다 (Robert Haas)§
이것은 체크 포인트를 완료하기 전에 수정 된 파일이 fsync를 얻지 못할 수있는 레이스 조건을 피하기 때문에 곧 운영 체제가 충돌하면 데이터 손상의 위험이 발생합니다..
useRename ()
notlink ()
/Unlink ()
파일 이름 바꾸기 (Nathan Bossart)§
이전 코딩은 작업이 실수로 기존 파일을 덮어 쓸 수 없도록하기위한 것입니다. 그러나 실패는 존재하는 동일한 파일에 두 개의 링크를 남겨두고 후속 작업을 혼란스럽게하고 데이터 손상의 위험을 야기 할 수 있습니다.
업데이트를 잃지 않으면PG_DATABASE
.datfrozenxid
언제진공
A와 동시에 실행됩니다소유 한 재 설계
그 데이터베이스 소유자 (Kirill Reshke)를 변경합니다§
잘못된 수정TG_UPDATEDCOLS
값이 전달됨업데이트 후
트리거 (Tom Lane)§
경우에 따라TG_UPDATEDCOLS
비트 맵은 동일한 트랜잭션에서 이전 명령으로 업데이트 된 열 세트를 설명 할 수 있으며, 트리거가 잘못된 일을 속이는 데 속이는 것입니다.
10340_10406TG_UPDATEDCOLS
비트 맵.
의 잘못 처리 수정TO_TIMESTAMP
'sff
형식 코드 (Tom Lane)§n
직전의 정수 형식 코드ff
사용 가능한 모든 숫자를 소비 할 것입니다.n
ff
.n
DEPARSING ANxmltable ()
expression, XML 네임 스페이스 이름이 필요할 때 두 번 인용되는지 확인하십시오 (Dean Rasheed)§
병합하지 마십시오Union
열이 일관되지 않은 경우 작동 (Tom Lane)§
이전에 우리는 병합하기에 안전한지 결정할 때 콜라주를 무시했습니다Union
단일 n- 웨이로 들어가Union
작동. 이것은 비 결정적 콜라주가 도입되기 전에 논란의 여지가 있었지만, 사용중인 콜라이트가 독창성의 정의에 영향을 줄 수 있기 때문에 더 이상은 아닙니다..
파티션 가지 치기 단계에 대한 놓친 표현 처리 수정 (Tom Lane)§
이 감독은로 이어질 수 있습니다.“인식되지 않은 노드 유형”파티션 된 테이블에 액세스하는 쿼리에서 오류 및 기타 문제.
dshash 테이블이 1GB를 지나서 성장하도록 허용 (Matthias van de Meent)§
이것은와 같은 오류를 피합니다.“잘못된 DSA 메모리 Alloc 요청 크기”. 예를 들어 수백만 개의 테이블을 처리하는 트랜잭션에서 발생할 수 있습니다.
가능한 정수 오버플로를 피하십시오BringetBitMap ()
(James Hunter, Evgeniy Gorbanyov)§
결과는 통계적 목적으로 만 사용 되므로이 오류의 효과는 대부분 미용 적이었습니다.
Pages를 건너는 WAL 레코드 (Kyotaro Horiguchi, Alexander Kukushkin)§
이것은 레코드의 연속이 다른 WAL 소스에서 읽어야하는 페이지에있을 때 발생합니다.
초기 프로세스 스타트 업 동안 공황에 대한 치명적인 오류의 의도하지 않은 홍보 수정 (Noah Misch)§
이것은 가능성이없는 몇 가지 사례를 수정하여“panic : proc_exit () 아동 프로세스에서 호출”.
운영자 제품군 운영자 또는 지원 절차가 매달려있는 참조가 될 수있는 케이스를 수정합니다 (Tom Lane)§ §
경우에 따라 OID에 대한 참조가 여전히 남아있는 동안 데이터 유형을 삭제할 수 있습니다pg_amop
또는PG_AMPROC
. 그로 인해 즉각적인 문제가 발생하지는 않지만 소유 사업자 제품군을 떨어 뜨리려는 시도는 실패하고pg_dump운영자 제품군을 버릴 때 가짜 출력을 생성합니다. 이 수정은 운영자 패밀리/클래스의 생성 및 수정을 유발하여 필요한 종속성 항목을 추가하여 데이터 유형을 삭제하면 종속 운영자 제품군 요소도 떨어집니다.드롭 운영자 가족
회원이 매달려있는 가족을 떨어 뜨릴 때 실패를 방지합니다.
논리적 디코딩 출력에서 다중 메모리 누출 수정 (Vignesh C, Masahiko Sawada, Boyu Yang)§ §
실패에 대한 검사 누락으로 인해 메모리 외부의 낮은 확률 충돌을 피하십시오malloc ()
(Karina Litskevich)§
테스트하는 동안 정수 오버플로를 피하십시오WAL_SKIP_THRESHOLD
조건 (Tom Lane)§
매우 큰 관계를 창출 한 트랜잭션은 실수로 관계를 fsync'ing 대신 WAL에 복사하여 내구성을 보장하기로 결정할 수 있습니다.WAL_SKIP_THRESHOLD
. (이것은 만 중요합니다Wal_level
최소
, 그렇지 않으면 WAL 사본이 필요합니다.)
캐시 조회 중 안전하지 않은 작동 순서 수정 (Noah Misch)§
유일한 알려진 결과는 일반적으로 harmless입니다.“당신은 type exclusivelock의 잠금을 소유하지 않습니다”경고 중그랜트 테이블 스페이스
.
가능한 수정“이름을 해결하지 못했습니다”오래된 ARM 플랫폼에서 JIT를 사용할 때의 실패 (Thomas Munro)§
이것은 기본 설정에 대한 불일치로 인해 발생할 수 있습니다-moutline-acomics
GCC와 Clang 사이. 적어도 Debian과 Ubuntu는 ARMV8-A를 대상으로하지만 기본적으로 개요 원자의 사용에 따라 GCC 및 Clang 컴파일러를 배송하는 것으로 알려져 있습니다.
windows가 아닌 Windows 접합 지점의 처리 수정와이즈 토토Origin (Thomas Munro)§ §
이전,initdb데이터 디렉토리로가는 경로에 확장이없는 정션 포인트가 포함되어 있으면 실패합니다.“드라이브 절대”형식, 또는 확장이 다른 정션 지점을 가리킨다.
어설 션 실패 수정재귀와 ... Union
쿼리 (David Rowley)§
정해진 조작 잎 쿼리에 설정된 작업이 포함 된 경우 규칙 퇴직에서 어설 션 실패 방지§
병렬 쿼리 시작 (Tom Lane)에서 에지 케이스 어설 션 실패 방지§
관계 자르기 중에 희귀 한 주장 실패를 피하십시오 (Heikki Linnakangas)§
innullif ()
, 데이터 유형의 평등 함수 (Tom Lane)에 대한 읽기 낭비 확장 객체 포인터를 전달하지 마십시오.§
평등 함수는 객체가 읽기 쓰기 포인터가 주어지면 개체를 수정하거나 삭제할 수 있습니다.nullif ()
결과. 내장 평등 함수에는 문제가 없지만 PL/PGSQL에 코딩 된 하나의 실패를 쉽게 입증하기가 쉽습니다.
PL/Python (Mat Arye, Tom Lane)의 메모리 누출 수리§
반복 사용plyplan.execute
또는또는
호출 PL/Python 기능 기간 동안 메모리 누출이 발생했습니다.
TCL 9 (Peter Eisentraut)로 컴파일하려면 pl/tcl을 수정합니다.§
inECPG사전 처리기, 소외된 변수 (Tom Lane)를 참조하는 커서의 잘못 처리 가능한 수정§
inECPG, 지원되지 않은 사용에 대한 컴파일 타임 경고 수정Copy ... From Stdin
(Ryo Kanbayashi)§
이전에, 의도 된 경고는 오타로 인해 발행되지 않았습니다.
수정PSQLSJIS (Tom Lane)에서 인코딩 된 파일 경로 이름을 안전하게 처리하려면§
SJI의 일부 2 바이트 문자는 ASCII BackSlash (와 동일한 두 번째 바이트가 있습니다.\
). 이 문자는 경로 이름 정규화에 의해 손상되어 이름이 포함 된 파일에 대한 액세스를 방지합니다.
잘못된 버전의 사용 수정pqsignal ()
inpgbenchandPSQL(Fujii Masao, Tom Lane)§
이 오류는를 사용할 때 오류가 발생할 수 있습니다.-t
옵션pgbench또는\ watch
명령에서PSQL, 중단 된 시스템 호출이 예상대로 재개되지 않아서.
일부 중첩의 미학적 수정\ if
구성pgbench(Michail Nikolaev)§
an\ if
거짓 내에 나타나는 명령 (사제가 아닙니다)\ if
지점이와 동일하게 잘못 처리되었습니다.\ elif
.
inpgbench, 테이블 초기화 중 진행 메시지의 실수 오도 수정 (Yushi Ogiwara, Tatsuo Ishii, Fujii Masao)§ §
makePG_CONTROLDATA손상된 것에 대한 더 강력한PG_CONTROL
파일 (Ilyasov Ian, Anton Voloshin)§
이후PG_CONTROLDATA의 내용을 인쇄하려고 시도합니다PG_CONTROL
CRC 검사가 실패하더라도 잘못된 필드 값을 잘못 행동하지 않아야합니다. 이 패치는 유효하지 않은 타임 스탬프와 분명히 음성 WAL 세그먼트 크기로 트리거 된 일부 문제를 수정합니다.
가능한 충돌 수정pg_dumpExtension Members (Tom Lane) 인 테이블에 첨부 된 ID 시퀀스가있는§
수정PG_BASEBACKUP올바르게 처리하려면pg_wal.tar
Windows에서 2GB를 초과하는 파일 (Davinder Singh, Thomas Munro)§ §
ARM CRC 명령어에 액세스하는 데 필요한 컴파일러 스위치를 결정하는 구성 프로브 업데이트 (Tom Lane)§
기준 CPU 대상에 CRC 지침이 부족한 ARM 플랫폼에서를 공급해야합니다-march
컴파일러를 설득하여 그러한 지침을 컴파일하도록 설득하십시오. 최근 버전의 GCC는 우리가 시도한 가치를 거부하여 Software CRC로 조용히 떨어지게됩니다.
동안구성, C23 컴파일러가 감지되면 C17 (Thomas Munro)을 요청하십시오.§
와이즈 토토V16 이전의 버전은 C23 규칙에 따라 컴파일되지 않습니다. 선택한 컴파일러가 기본적으로 C23 이상으로 기본적으로 a를 추가 해보십시오.-std = gnu17
그것을 변경하도록 전환하십시오. (컴파일러에 대해 작동하지 않으면 수동으로 지정cflags
적절한 스위치 포함.)
시간대 데이터 파일 업데이트tzdataParaguay의 DST 법률 변경을위한 릴리스 2025A 및 필리핀의 역사적 교정 (Tom Lane)§