first draft for libnl 1.1
[libnl.git] / libnl-1.0-pre8-use-vasprintf-retval.patch
diff --git a/libnl-1.0-pre8-use-vasprintf-retval.patch b/libnl-1.0-pre8-use-vasprintf-retval.patch
new file mode 100644 (file)
index 0000000..75cb94b
--- /dev/null
@@ -0,0 +1,29 @@
+diff -up libnl-1.0-pre8/include/netlink-local.h.use-vasprintf-retval libnl-1.0-pre8/include/netlink-local.h
+--- libnl-1.0-pre8/include/netlink-local.h.use-vasprintf-retval        2007-12-03 14:13:52.000000000 -0500
++++ libnl-1.0-pre8/include/netlink-local.h     2007-12-03 14:15:26.000000000 -0500
+@@ -273,13 +273,18 @@ static inline void __dp_dump(struct nl_d
+               vfprintf(parms->dp_fd, fmt, args);
+       else if (parms->dp_buf || parms->dp_cb) {
+               char *buf = NULL;
+-              vasprintf(&buf, fmt, args);
+-              if (parms->dp_cb)
+-                      parms->dp_cb(parms, buf);
+-              else
+-                      strncat(parms->dp_buf, buf,
+-                              parms->dp_buflen - strlen(parms->dp_buf) - 1);
+-              free(buf);
++              int ret;
++              ret = vasprintf(&buf, fmt, args);
++              if (ret >= 0) {
++                      if (parms->dp_cb)
++                              parms->dp_cb(parms, buf);
++                      else
++                              strncat(parms->dp_buf, buf,
++                                      parms->dp_buflen - strlen(parms->dp_buf) - 1);
++                      free(buf);
++              } else {
++                      // FIXME: indicate error somehow
++              }
+       }
+ }