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