Fix segmentaion fault in libxenapi
PATCH 1/1 Fix segmentaion fault in libxenapi
When calling xen_vbd_set_mode(), libxenapi attempted to convert the enum mode parameter to a string twice - resulting in segfault. Removed first conversion since conversion is taking place in marshalling/demarshalling layer. Fixed similar double enum conversion in other places as well.
Regards,
Jim
# HG changeset patch
# User Jim Fehlig <[email protected]>
# Date 1181684273 21600
# Node ID e4e63812779c8bfc51e15dc137533f73f8e38858 # Parent 93f77a5a8437df0b34919a6987f48e84342b4a43 Fix segfault in libxenapi.
When calling xen_vbd_set_mode(), libxenapi attempted to convert enum mode parameter to a string twice - resulting in segfault. Removed first conversion since conversion is taking place in marshalling/demarshalling layer. Fixed similar double enum conversion in other places as well.
tools/libxen/src/xen_vbd.c +2 -2
@@ -463,7 +463,7 @@ xen_vbd_set_mode(xen_session *session, x { .type = &abstract_type_string, .u.string_val = vbd }, { .type = &xen_vbd_mode_abstract_type_, - .u.string_val = xen_vbd_mode_to_string(mode) } + .u.enum_val = mode } };xen_call_ (session,"VBD.set_mode" , param_values,2 ,NULL ,NULL );
@@ -479,7 +479,7 @@ xen_vbd_set_type(xen_session *session, x { .type = &abstract_type_string, .u.string_val = vbd }, { .type = &xen_vbd_type_abstract_type_, - .u.string_val = xen_vbd_type_to_string(type) } + .u.enum_val = type } };xen_call_ (session,"VBD.set_type" , param_values,2 ,NULL ,NULL );
tools/libxen/src/xen_vm.c +3 -3
@@ -1142,7 +1142,7 @@ xen_vm_set_actions_after_shutdown(xen_se { .type = &abstract_type_string, .u.string_val = vm }, { .type = &xen_on_normal_exit_abstract_type_, - .u.string_val = xen_on_normal_exit_to_string(after_shutdown) } + .u.enum_val = after_shutdown } };xen_call_ (session,"VM.set_actions_after_shutdown" , param_values,2 ,NULL ,NULL );
@@ -1158,7 +1158,7 @@ xen_vm_set_actions_after_reboot(xen_sess { .type = &abstract_type_string, .u.string_val = vm }, { .type = &xen_on_normal_exit_abstract_type_, - .u.string_val = xen_on_normal_exit_to_string(after_reboot) } + .u.enum_val = after_reboot } };xen_call_ (session,"VM.set_actions_after_reboot" , param_values,2 ,NULL ,NULL );
@@ -1174,7 +1174,7 @@ xen_vm_set_actions_after_crash(xen_sessi { .type = &abstract_type_string, .u.string_val = vm }, { .type = &xen_on_crash_behaviour_abstract_type_, - .u.string_val = xen_on_crash_behaviour_to_string(after_crash) } + .u.enum_val = after_crash } };xen_call_ (session,"VM.set_actions_after_crash" , param_values,2 ,NULL ,NULL );
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel