Thread: PgAdmin crash (1.10.0 beta4) + possible fix

PgAdmin crash (1.10.0 beta4) + possible fix

From
Gevik Babakhani
Date:
PgAdmin crashes when browsing functions that only have a single out
parameters without a default value (BTW default values on out parameters
are not supported anyways)

The problem is in pgFunction.cpp(324).

To replicate the crash:
---------------------------------------------------------------------------
CREATE OR REPLACE FUNCTION out_test_crash_3(OUT integer)
  RETURNS integer AS
$BODY$
begin
$1 = 1000;
end;
$BODY$
  LANGUAGE 'plpgsql'
--------------------------------------------------------------------------

Then:
Refresh the function node in the tree and click on the function name above.

Possibe fix:
Included.

--
Regards,
Gevik

Index: schema/pgFunction.cpp
===================================================================
--- schema/pgFunction.cpp    (revision 7881)
+++ schema/pgFunction.cpp    (working copy)
@@ -321,7 +321,7 @@
         // Parameter default value
         if (GetConnection()->HasFeature(FEATURE_FUNCTION_DEFAULTS) || GetConnection()->BackendMinimumVersion(8, 4))
         {
-            if (!argDefsArray.Item(i).IsEmpty())
+            if (argDefsArray.Count() != 0 && !argDefsArray.Item(i).IsEmpty())
                 arg += wxT(" DEFAULT ") + argDefsArray.Item(i);
         }


Re: PgAdmin crash (1.10.0 beta4) + possible fix

From
Ashesh Vashi
Date:
Hi Gevik,

Thanks for reporting this.

Dave,

Please find the patch for the same.

Gevik Babakhani wrote:
PgAdmin crashes when browsing functions that only have a single out parameters without a default value (BTW default values on out parameters are not supported anyways)

The problem is in pgFunction.cpp(324).

To replicate the crash:
---------------------------------------------------------------------------
CREATE OR REPLACE FUNCTION out_test_crash_3(OUT integer)
 RETURNS integer AS
$BODY$
begin
$1 = 1000;
end;
$BODY$
 LANGUAGE 'plpgsql'
--------------------------------------------------------------------------

Then:
Refresh the function node in the tree and click on the function name above.

Possibe fix:
Included.

--
Regards,
Gevik
--
Thanks & Regards,
Ashesh Vashi

EnterpriseDB INDIA: http://www.enterprisedb.com

Re: PgAdmin crash (1.10.0 beta4) + possible fix

From
Dave Page
Date:
Thanks, applied with an additional fix to prevent an assertion in
dlgFunction::Go.

On Tue, May 26, 2009 at 1:45 AM, Ashesh Vashi
<ashesh.vashi@enterprisedb.com> wrote:
> Hi Gevik,
>
> Thanks for reporting this.
>
> Dave,
>
> Please find the patch for the same.
>
> Gevik Babakhani wrote:
>
> PgAdmin crashes when browsing functions that only have a single out
> parameters without a default value (BTW default values on out parameters are
> not supported anyways)
>
> The problem is in pgFunction.cpp(324).
>
> To replicate the crash:
> ---------------------------------------------------------------------------
> CREATE OR REPLACE FUNCTION out_test_crash_3(OUT integer)
>  RETURNS integer AS
> $BODY$
> begin
> $1 = 1000;
> end;
> $BODY$
>  LANGUAGE 'plpgsql'
> --------------------------------------------------------------------------
>
> Then:
> Refresh the function node in the tree and click on the function name above.
>
> Possibe fix:
> Included.
>
> --
> Regards,
> Gevik
>
> --
> Thanks & Regards,
> Ashesh Vashi
>
> EnterpriseDB INDIA: http://www.enterprisedb.com
>
> --
> Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgadmin-hackers
>
>



--
Dave Page
EnterpriseDB UK:   http://www.enterprisedb.com