Skip site navigation (1) Skip section navigation (2)

pgAdmin III commit: Fix deleting lines in frmEditGrid with 64bitsystem

From: Guillaume Lelarge <guillaume(at)lelarge(dot)info>
To: pgadmin-hackers(at)postgresql(dot)org
Subject: pgAdmin III commit: Fix deleting lines in frmEditGrid with 64bitsystem
Date: 2012-03-18 22:28:09
Message-ID: E1S9Oa9-0002Fa-G5@gothos.postgresql.org (view raw or flat)
Thread:
Lists: pgadmin-hackers
Fix deleting lines in frmEditGrid with 64bit systems

I believe I've fixed a problem where pgAdmin intermittently crashes on
64 bit systems while deleting rows.  The issues seems to be that, among
other things, sqlTable::DeleteRows() in frm/frmEditGrid.cpp attempts to
remove an element in lineIndex by shifting down the remaining elements.
Unfortunately the "sizeof" is taking the size of the wrong thing.

I suspect this is only an issue on systems where pointers and "int"s are
different sizes, which should be 64 bit systems, but I have only have a
64 bit Linux system handy to try.

Increasing the number of rows that follow the row deleted should
increase the probability of getting a crash, but Valgrind always
complains about bad reads and writes for the memmove() in question.

Steps to reproduce the problem:
1) Choose a table that has roughly 200 or more rows.  Here's a dump of
   such a table:
   http://selliott.org/pgadmin/table-200-rows.sql
2) Navigate to the "Edit Data" window (the window navigated to by
   selecting the View Data / View All Rows for the table in question).
3) Select a low numbered row, such as the fifth row.
4) Right click and select "Delete".  The crash may happen when the
   delete is confirmed after the subsequent dialog.

Branch
------
REL-1_14_0_PATCHES

Details
-------
http://git.postgresql.org/gitweb?p=pgadmin3.git;a=commitdiff;h=978ca323beb2f8d96efa0c9eaee6ffceac86da0c
Author: Steven Elliot <selliott4(at)austin(dot)rr(dot)com>

Modified Files
--------------
CHANGELOG                   |    2 ++
pgadmin/frm/frmEditGrid.cpp |    2 +-
2 files changed, 3 insertions(+), 1 deletions(-)

pgadmin-hackers by date

Next:From: Guillaume LelargeDate: 2012-03-18 22:31:34
Subject: Re: [PATCH] Fix for crash while deleting rows on 64 bit systems
Previous:From: Steven ElliottDate: 2012-03-18 16:37:31
Subject: [PATCH] Fix for crash while deleting rows on 64 bit systems

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group