[gnome-disk-utility/udisks2-port] Avoid segfault in corner case



commit 19d3855464b4c08e0ca59be5f9e5f3d33a3ce4df
Author: David Zeuthen <davidz redhat com>
Date:   Fri Jan 6 14:03:20 2012 -0500

    Avoid segfault in corner case
    
    Signed-off-by: David Zeuthen <davidz redhat com>

 src/palimpsest/gduvolumegrid.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/src/palimpsest/gduvolumegrid.c b/src/palimpsest/gduvolumegrid.c
index 7c089b4..4c266ef 100644
--- a/src/palimpsest/gduvolumegrid.c
+++ b/src/palimpsest/gduvolumegrid.c
@@ -1498,6 +1498,18 @@ recompute_grid (GduVolumeGrid *grid)
   grid->selected = find_element_for_offset_and_object (grid, cur_selected_offset, cur_selected_object);
   grid->focused = find_element_for_offset_and_object (grid, cur_focused_offset, cur_focused_object);
 
+  /* ensure we have at least one element */
+  if (grid->elements == NULL)
+    {
+      element = g_new0 (GridElement, 1);
+      element->type = GDU_VOLUME_GRID_ELEMENT_TYPE_NO_MEDIA;
+      element->size_ratio = 1.0;
+      element->offset = 0;
+      element->size = 0;
+      grid->elements = g_list_append (NULL, element);
+      grid_element_set_details (grid, element);
+    }
+
   /* ensure something is always focused/selected */
   if (grid->selected == NULL)
     grid->selected = grid->elements->data;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]