From c04b25f803ef8ab5a3dffdfaccfceb82c257394c Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 24 Jul 2024 13:37:56 +0200 Subject: [PATCH] =?UTF-8?q?PG:=20fix=20support=20for=20geometry/geography?= =?UTF-8?q?=20OID=20in=20range=C2=A0[2147483648,=204294967295]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #10486 --- ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp | 4 ++-- ogr/ogrsf_frmts/pg/ogrpglayer.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp b/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp index 1c2c6a93b8e0..f38c9e7329e0 100644 --- a/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp +++ b/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp @@ -831,12 +831,12 @@ int OGRPGDataSource::Open(const char *pszNewName, int bUpdate, int bTestOpen, if (EQUAL(pszTypname, "geometry")) { bHavePostGIS = TRUE; - nGeometryOID = atoi(pszOid); + nGeometryOID = static_cast(strtoul(pszOid, nullptr, 10)); } else if (CPLTestBool(CPLGetConfigOption("PG_USE_GEOGRAPHY", "YES"))) { bHaveGeography = TRUE; - nGeographyOID = atoi(pszOid); + nGeographyOID = static_cast(strtoul(pszOid, nullptr, 10)); } } } diff --git a/ogr/ogrsf_frmts/pg/ogrpglayer.cpp b/ogr/ogrsf_frmts/pg/ogrpglayer.cpp index a196317b7ce6..8e186860d7d5 100644 --- a/ogr/ogrsf_frmts/pg/ogrpglayer.cpp +++ b/ogr/ogrsf_frmts/pg/ogrpglayer.cpp @@ -564,7 +564,7 @@ OGRFeature *OGRPGLayer::RecordToFeature(PGresult *hResult, for (int iField = 0; iField < PQnfields(hResult); iField++) { #if defined(BINARY_CURSOR_ENABLED) - int nTypeOID = PQftype(hResult, iField); + const Oid nTypeOID = PQftype(hResult, iField); #endif const char *pszFieldName = PQfname(hResult, iField);