projects
/
openvswitch
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
7bee00f
)
Make vconn_open() consistently set *vconnp to NULL on failure.
author
Ben Pfaff
<blp@nicira.com>
Thu, 7 Aug 2008 22:37:44 +0000
(15:37 -0700)
committer
Ben Pfaff
<blp@nicira.com>
Thu, 7 Aug 2008 22:37:44 +0000
(15:37 -0700)
Fixes issue #80.
lib/vconn.c
patch
|
blob
|
history
diff --git
a/lib/vconn.c
b/lib/vconn.c
index 9d4659df871006ac7807b303e6caf38aac337302..cdaa933ce13fdfd08be3682a8d117777140add8b 100644
(file)
--- a/
lib/vconn.c
+++ b/
lib/vconn.c
@@
-152,6
+152,7
@@
vconn_open(const char *name, struct vconn **vconnp)
check_vconn_classes();
check_vconn_classes();
+ *vconnp = NULL;
prefix_len = strcspn(name, ":");
if (prefix_len == strlen(name)) {
error(0, "`%s' not correct format for peer name", name);
prefix_len = strcspn(name, ":");
if (prefix_len == strlen(name)) {
error(0, "`%s' not correct format for peer name", name);
@@
-161,14
+162,14
@@
vconn_open(const char *name, struct vconn **vconnp)
struct vconn_class *class = vconn_classes[i];
if (strlen(class->name) == prefix_len
&& !memcmp(class->name, name, prefix_len)) {
struct vconn_class *class = vconn_classes[i];
if (strlen(class->name) == prefix_len
&& !memcmp(class->name, name, prefix_len)) {
+ struct vconn *vconn;
char *suffix_copy = xstrdup(name + prefix_len + 1);
char *suffix_copy = xstrdup(name + prefix_len + 1);
- int retval = class->open(name, suffix_copy,
vconnp
);
+ int retval = class->open(name, suffix_copy,
&vconn
);
free(suffix_copy);
free(suffix_copy);
- if (retval) {
- *vconnp = NULL;
- } else {
- assert((*vconnp)->connect_status != EAGAIN
- || (*vconnp)->class->connect);
+ if (!retval) {
+ assert(vconn->connect_status != EAGAIN
+ || vconn->class->connect);
+ *vconnp = vconn;
}
return retval;
}
}
return retval;
}