1From 76beb0938ef14276123996bfd99df23b0c7f0982 Mon Sep 17 00:00:00 2001
2From: Soumya Sambu <soumya.sambu@windriver.com>
3Date: Fri, 7 Jun 2024 11:10:46 +0000
4Subject: [PATCH] PostgreSQL driver: Fix incompatible pointer-to-integer types
5
6These result in out-of-bounds stack writes on 64-bit architectures
7(caller has 4 bytes, callee writes 8 bytes), and seem to have gone
8unnoticed on little-endian architectures (although big-endian
9architectures must be broken).
10
11This change is required to avoid a build failure with GCC 14.
12
13CVE: CVE-2024-1013
14
15Upstream-Status: Backport [https://github.com/lurcher/unixODBC/commit/45f501e1be2db6b017cc242c79bfb9de32b332a1]
16
17Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
18---
19 Drivers/Postgre7.1/info.c | 6 +++---
20 1 file changed, 3 insertions(+), 3 deletions(-)
21
22diff --git a/Drivers/Postgre7.1/info.c b/Drivers/Postgre7.1/info.c
23index 63ac91f..2216ecd 100644
24--- a/Drivers/Postgre7.1/info.c
25+++ b/Drivers/Postgre7.1/info.c
26@@ -1779,14 +1779,14 @@ char *table_name;
27 char index_name[MAX_INFO_STRING];
28 short fields_vector[8];
29 char isunique[10], isclustered[10];
30-SDWORD index_name_len, fields_vector_len;
31+SQLLEN index_name_len, fields_vector_len;
32 TupleNode *row;
33 int i;
34 HSTMT hcol_stmt;
35 StatementClass *col_stmt, *indx_stmt;
36 char column_name[MAX_INFO_STRING], relhasrules[MAX_INFO_STRING];
37 char **column_names = 0;
38-Int4 column_name_len;
39+SQLLEN column_name_len;
40 int total_columns = 0;
41 char error = TRUE;
42 ConnInfo *ci;
43@@ -2136,7 +2136,7 @@ HSTMT htbl_stmt;
44 StatementClass *tbl_stmt;
45 char tables_query[STD_STATEMENT_LEN];
46 char attname[MAX_INFO_STRING];
47-SDWORD attname_len;
48+SQLLEN attname_len;
49 char pktab[MAX_TABLE_LEN + 1];
50 Int2 result_cols;
51
52--
532.40.0
54