Oh, also I think this may introduce a memory leak. I.E. in the case where connect_path is malloced, it never gets freed.
Ethan On Tue, Feb 5, 2013 at 5:08 PM, Ethan Jackson <et...@nicira.com> wrote: > This isn't a full review of the patch, but have you considered using > xasprintf() instead of doing the string manipulation by hand? > > Ethan > > On Tue, Feb 5, 2013 at 5:07 PM, Pavithra Ramesh <param...@vmware.com> wrote: >> If socket path specified is relative to ovs_rundir(), >> append the directory name to in unix_open. >> >> Signed-off-by: Pavithra Ramesh <param...@vmware.com> >> --- >> lib/stream-unix.c | 12 +++++++++++- >> 1 files changed, 11 insertions(+), 1 deletions(-) >> >> diff --git a/lib/stream-unix.c b/lib/stream-unix.c >> index 6ed7648..8764b6c 100644 >> --- a/lib/stream-unix.c >> +++ b/lib/stream-unix.c >> @@ -42,9 +42,19 @@ static int >> unix_open(const char *name, char *suffix, struct stream **streamp, >> uint8_t dscp OVS_UNUSED) >> { >> - const char *connect_path = suffix; >> + const char *ovsDir = ovs_rundir(); >> + char *new_path, *connect_path = suffix; >> int fd; >> >> + if ((!strstr(suffix, ovsDir)) { >> + /* alloc one byte for '/' and one for null terminator */ >> + new_path = (char *)xmalloc(strlen(ovsDir) + strlen(suffix) + 2); >> + strncpy(new_path, ovsDir, strlen(ovsDir)); >> + new_path[strlen(ovsDir)] = '/'; >> + new_path[strlen(ovsDir) + 1] = '\0'; >> + strncat(new_path, suffix, strlen(suffix)); >> + connect_path = new_path; >> + } >> fd = make_unix_socket(SOCK_STREAM, true, NULL, connect_path); >> if (fd < 0) { >> VLOG_DBG("%s: connection failed (%s)", connect_path, strerror(-fd)); >> -- >> 1.7.0.4 >> >> _______________________________________________ >> dev mailing list >> dev@openvswitch.org >> http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev