Red Hat Bugzilla – Bug 431150
[PATCH] Fix a crash when deleting and adding rows
Last modified: 2008-04-16 23:56:19 EDT
Version-Release number of selected component (if applicable):
Steps to Reproduce:
Kind of difficult. Basically, delete rows from the end of a GtkSheet, then
When a GtkSheet is initialized, sheet->maxrow == 0 && sheet->maxallocrow == 1.
After adding some rows, sheet->maxrow == N && sheet->maxallocrow == N+1.
Then, deleting M rows from the end will clear data for all rows from (N-M+1) on,
and eventually sheet->maxrow is set to (N-M), but sheet->maxallocrow is,
incorrectly, decremented only to (N-M+1).
Later, when more rows are added to the end using gtk_sheet_insert_row(), data
for the row (N-M+1) is not allocated again, and InsertRow() crashes in the loop
that attempts to update cell->row when dereferencing a NULL pointer.
Created attachment 293676 [details]
Make sure sheet->maxallocrow does not point to deallocated rows
gtk+extra-2.1.1-6.fc7 has been submitted as an update for Fedora 7
gtk+extra-2.1.1-7.fc8 has been submitted as an update for Fedora 8
Sorry for a so late answer.
Thanks for the patch, I just commited it on F7, F8 and devel.
Here as the links to tell if the updates work for you
gtk+extra-2.1.1-6.fc7 has been pushed to the Fedora 7 testing repository. If problems still persist, please make note of it in this bug report.
If you want to test the update, you can install it with
su -c 'yum --enablerepo=updates-testing update gtk+extra'. You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F7/FEDORA-2008-2923
gtk+extra-2.1.1-6.fc7 has been pushed to the Fedora 7 stable repository. If problems still persist, please make note of it in this bug report.
gtk+extra-2.1.1-7.fc8 has been pushed to the Fedora 8 stable repository. If problems still persist, please make note of it in this bug report.