Thread: --describe-config crashes

--describe-config crashes

From
Zdenek Kotala
Date:
Function printMixedStruct calls printf with NULL argument. It causes
segmentation fault. Please, apply it for 8.3 - 8.1 too.

            thanks Zdenek
Index: src/backend/utils/misc/help_config.c
===================================================================
RCS file: /zfs_data/cvs_pgsql/cvsroot/pgsql/src/backend/utils/misc/help_config.c,v
retrieving revision 1.19
diff -c -r1.19 help_config.c
*** src/backend/utils/misc/help_config.c    1 Jan 2008 19:45:54 -0000    1.19
--- src/backend/utils/misc/help_config.c    21 Feb 2008 17:48:00 -0000
***************
*** 117,123 ****

          case PGC_STRING:
              printf("STRING\t%s\t\t\t",
!                    structToPrint->string.boot_val);
              break;

          default:
--- 117,123 ----

          case PGC_STRING:
              printf("STRING\t%s\t\t\t",
!                    (structToPrint->string.boot_val == NULL) ? "(NULL)" : structToPrint->string.boot_val);
              break;

          default:

Re: --describe-config crashes

From
Tom Lane
Date:
Zdenek Kotala <Zdenek.Kotala@Sun.COM> writes:
> Function printMixedStruct calls printf with NULL argument. It causes
> segmentation fault. Please, apply it for 8.3 - 8.1 too.

Ugh, I guess we've only tested --describe-config on platforms where
%s treats a NULL pointer the same as an empty string.

Since that's also effectively the way GUC handles it, I'm inclined
to think we should print NULL as "" not "(NULL)".  Otherwise,
will apply.

            regards, tom lane

Re: --describe-config crashes

From
Bruce Momjian
Date:
Tom Lane wrote:
> Zdenek Kotala <Zdenek.Kotala@Sun.COM> writes:
> > Function printMixedStruct calls printf with NULL argument. It causes
> > segmentation fault. Please, apply it for 8.3 - 8.1 too.
>
> Ugh, I guess we've only tested --describe-config on platforms where
> %s treats a NULL pointer the same as an empty string.
>
> Since that's also effectively the way GUC handles it, I'm inclined
> to think we should print NULL as "" not "(NULL)".  Otherwise,
> will apply.

Tom has applied this patch to CVS HEAD and all relevant back-branches.

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://postgres.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +