Fix handling of NULL return value in typarray lookup
authorDaniel Gustafsson <[email protected]>
Thu, 5 Sep 2024 13:32:22 +0000 (15:32 +0200)
committerDaniel Gustafsson <[email protected]>
Thu, 5 Sep 2024 13:32:22 +0000 (15:32 +0200)
Commit 6ebeeae29 accidentally omitted testing the return value from
findTypeByOid which can return NULL.  Fix by adding a check to make
sure that we have a pointer to dereference.

Author: Ranier Vilela <[email protected]>
Reviewed-by: Nathan Bossart <[email protected]>
Reviewed-by: Daniel Gustafsson <[email protected]>
Discussion: https://postgr.es/m/CAEudQAqfMTH8Ya_J6E-NW_y_JyDFDxtQ4V_g6nY_1=0oDbQqdg@mail.gmail.com

src/bin/pg_dump/pg_dump.c

index dacb033e989416c99135eab01f606c5946e7209d..546e7e4ce1a22a7cac2d750c0ef52b0d8d1e3c22 100644 (file)
@@ -5420,7 +5420,10 @@ binary_upgrade_set_type_oids_by_type_oid(Archive *fout,
                      pg_type_oid);
 
    tinfo = findTypeByOid(pg_type_oid);
-   pg_type_array_oid = tinfo->typarray;
+   if (tinfo)
+       pg_type_array_oid = tinfo->typarray;
+   else
+       pg_type_array_oid = InvalidOid;
 
    if (!OidIsValid(pg_type_array_oid) && force_array_type)
        pg_type_array_oid = get_next_possible_free_pg_type_oid(fout, upgrade_query);