14eeec9
diff -up libnl-1.0-pre8/include/netlink-local.h.use-vasprintf-retval libnl-1.0-pre8/include/netlink-local.h
14eeec9
--- libnl-1.0-pre8/include/netlink-local.h.use-vasprintf-retval	2007-12-03 14:13:52.000000000 -0500
14eeec9
+++ libnl-1.0-pre8/include/netlink-local.h	2007-12-03 14:15:26.000000000 -0500
14eeec9
@@ -273,13 +273,18 @@ static inline void __dp_dump(struct nl_d
14eeec9
 		vfprintf(parms->dp_fd, fmt, args);
14eeec9
 	else if (parms->dp_buf || parms->dp_cb) {
14eeec9
 		char *buf = NULL;
14eeec9
-		vasprintf(&buf, fmt, args);
14eeec9
-		if (parms->dp_cb)
14eeec9
-			parms->dp_cb(parms, buf);
14eeec9
-		else
14eeec9
-			strncat(parms->dp_buf, buf,
14eeec9
-			        parms->dp_buflen - strlen(parms->dp_buf) - 1);
14eeec9
-		free(buf);
14eeec9
+		int ret;
14eeec9
+		ret = vasprintf(&buf, fmt, args);
14eeec9
+		if (ret >= 0) {
14eeec9
+			if (parms->dp_cb)
14eeec9
+				parms->dp_cb(parms, buf);
14eeec9
+			else
14eeec9
+				strncat(parms->dp_buf, buf,
14eeec9
+				        parms->dp_buflen - strlen(parms->dp_buf) - 1);
14eeec9
+			free(buf);
14eeec9
+		} else {
14eeec9
+			// FIXME: indicate error somehow
14eeec9
+		}
14eeec9
 	}
14eeec9
 }
14eeec9