[Libvir] [PATCH REPOST] warn about conn, dom and net fields in virterror

Richard W.M. Jones rjones at redhat.com
Wed Apr 9 12:08:37 UTC 2008


First discussed in this thread:

http://www.redhat.com/archives/libvir-list/2008-March/thread.html#00367

The attached patch contains a slightly different warning about
the danger of using these fields.

Rich.

-- 
Richard Jones, Emerging Technologies, Red Hat  http://et.redhat.com/~rjones
virt-top is 'top' for virtual machines.  Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://et.redhat.com/~rjones/virt-top
-------------- next part --------------
Index: include/libvirt/virterror.h
===================================================================
RCS file: /data/cvs/libvirt/include/libvirt/virterror.h,v
retrieving revision 1.35
diff -u -p -r1.35 virterror.h
--- include/libvirt/virterror.h	21 Mar 2008 15:03:37 -0000	1.35
+++ include/libvirt/virterror.h	9 Apr 2008 12:09:44 -0000
@@ -63,6 +63,10 @@ typedef enum {
  * virError:
  *
  * A libvirt Error instance.
+ *
+ * The conn, dom and net fields should be used with extreme care.
+ * Reference counts are not incremented so the underlying objects
+ * may be deleted without notice after the error has been delivered.
  */
 
 typedef struct _virError virError;
@@ -72,14 +76,14 @@ struct _virError {
     int		domain;	/* What part of the library raised this error */
     char       *message;/* human-readable informative error message */
     virErrorLevel level;/* how consequent is the error */
-    virConnectPtr conn;	/* the connection if available */
-    virDomainPtr dom;	/* the domain if available */
+    virConnectPtr conn;	/* connection if available, see note above */
+    virDomainPtr dom;	/* domain if available, see note above */
     char       *str1;	/* extra string information */
     char       *str2;	/* extra string information */
     char       *str3;	/* extra string information */
     int		int1;	/* extra number information */
     int		int2;	/* extra number information */
-    virNetworkPtr net;	/* the network if available */
+    virNetworkPtr net;	/* network if available, see note above */
 };
 
 /**


More information about the libvir-list mailing list