Tagging module libnl - libnl-1.1-2
[libnl.git] / libnl-1.0-pre8-use-vasprintf-retval.patch
1 diff -up libnl-1.0-pre8/include/netlink-local.h.use-vasprintf-retval libnl-1.0-pre8/include/netlink-local.h
2 --- libnl-1.0-pre8/include/netlink-local.h.use-vasprintf-retval 2007-12-03 14:13:52.000000000 -0500
3 +++ libnl-1.0-pre8/include/netlink-local.h      2007-12-03 14:15:26.000000000 -0500
4 @@ -273,13 +273,18 @@ static inline void __dp_dump(struct nl_d
5                 vfprintf(parms->dp_fd, fmt, args);
6         else if (parms->dp_buf || parms->dp_cb) {
7                 char *buf = NULL;
8 -               vasprintf(&buf, fmt, args);
9 -               if (parms->dp_cb)
10 -                       parms->dp_cb(parms, buf);
11 -               else
12 -                       strncat(parms->dp_buf, buf,
13 -                               parms->dp_buflen - strlen(parms->dp_buf) - 1);
14 -               free(buf);
15 +               int ret;
16 +               ret = vasprintf(&buf, fmt, args);
17 +               if (ret >= 0) {
18 +                       if (parms->dp_cb)
19 +                               parms->dp_cb(parms, buf);
20 +                       else
21 +                               strncat(parms->dp_buf, buf,
22 +                                       parms->dp_buflen - strlen(parms->dp_buf) - 1);
23 +                       free(buf);
24 +               } else {
25 +                       // FIXME: indicate error somehow
26 +               }
27         }
28  }
29