29 lines
1.2 KiB
Diff
29 lines
1.2 KiB
Diff
Fix for a segfault in the CLI when doing a query -- not enough memory declared
|
|
for a handle array.
|
|
|
|
--- evms-2.5.5/ui/cli/interpreter.c 2005-06-01 10:20:32.000000000 -0500
|
|
+++ evms-2.5.5-fix/ui/cli/interpreter.c 2006-09-14 09:47:16.480084103 -0500
|
|
@@ -3326,7 +3326,8 @@
|
|
dlist_t Return_Values;
|
|
object_handle_t Object_Handle;
|
|
handle_array_t * Object_List;
|
|
- handle_array_t Tmp_Array;
|
|
+ char Tmp_Buffer[sizeof(handle_array_t) + sizeof(object_handle_t)];
|
|
+ handle_array_t * Tmp_Array = (handle_array_t *)Tmp_Buffer;
|
|
handle_object_info_t * Object_Info;
|
|
expand_handle_array_t * Expand_Points;
|
|
shrink_handle_array_t * Shrink_Points;
|
|
@@ -3477,9 +3478,9 @@
|
|
case EVMS_OBJECT:
|
|
Object_List = Object_Info->info.object.parent_objects;
|
|
if (Object_List->count == 0 && Object_Info->info.object.volume != 0) {
|
|
- Tmp_Array.count = 1;
|
|
- Tmp_Array.handle[0] = Object_Info->info.object.volume;
|
|
- Object_List = &Tmp_Array;
|
|
+ Tmp_Array->count = 1;
|
|
+ Tmp_Array->handle[0] = Object_Info->info.object.volume;
|
|
+ Object_List = Tmp_Array;
|
|
}
|
|
break;
|
|
default:
|