[PATCH] Fix for crash while deleting rows on 64 bit systems

From: Steven Elliott <selliott4(at)austin(dot)rr(dot)com>
To: pgAdmin Hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: [PATCH] Fix for crash while deleting rows on 64 bit systems
Date: 2012-03-18 16:37:31
Message-ID: 1332088651.31240.18.camel@blue
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

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.

--
------------------------------------------------------------------------
| Steven Elliott | http://selliott.org | selliott4(at)austin(dot)rr(dot)com |
------------------------------------------------------------------------

Attachment Content-Type Size
pgadmin-delete-crash.diff text/x-patch 458 bytes

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Guillaume Lelarge 2012-03-18 22:28:09 pgAdmin III commit: Fix deleting lines in frmEditGrid with 64bit system
Previous Message Guillaume Lelarge 2012-03-17 17:54:31 pgAdmin III commit: Get rid of short table names in DD