Re: [Qemu-devel] [PATCH 1/2] hostmem: fix QEMU crash by 'info memdev'

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

 





On 07/13/2016 07:37 PM, Paolo Bonzini wrote:


On 13/07/2016 13:29, Markus Armbruster wrote:
I'm curious about one thing.  Eric/Markus, it would be nice to open code
the visit of the list with

     visit_start_list(v, name, NULL, 0, &err);
     if (err) {
         goto out;
     }
     ...
     visit_type_uint16(v, name, &value, &err);
     visit_next_list(v, NULL, 0);
     ...
     visit_end_list(v, NULL);

We know here that on the other side there is an output visitor.
However, it doesn't work because visit_next_list asserts that tail ==
NULL.  Would it be easy to support this idiom, and would it make sense
to extend it to other kinds of visitor?
visit_next_list() asserts tail != NULL because to protect the
next_list() method.  qmp_output_next_list() dereferences tail.

Note that you don't have to call visit_next_list() in a virtual visit.
For an example, see prop_get_fdt().  Good enough already?

Yes, definitely!  I'm queueing Guangrong's patch because it fixes a
crash and the leak existed before, but without next_list we can indeed
visit a "virtual" list and fix the leak.  It can be done during the -rc
period.

So you want to build uint16List list and save it as a "virtual" list in
host_memory_backend_get_host_nodes(), then its caller can directly fetch
this 'virtual' list from the visit?

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux