]>
Commit | Line | Data |
---|---|---|
b0ded9b5 KK |
1 | diff -Naur capi20.orig/capiutils.h capi20/capiutils.h |
2 | --- capi20.orig/capiutils.h 2005-03-22 16:16:34.000000000 +0100 | |
3 | +++ capi20/capiutils.h 2007-03-15 01:18:09.000000000 +0100 | |
4 | @@ -308,6 +308,10 @@ | |
5 | #define capi20_cmd2str capi_cmd2str | |
6 | char *capi_cmd2str(_cbyte cmd, _cbyte subcmd); | |
7 | ||
8 | +/* | |
9 | + * WARNING: The following two functions use a single static buffer and | |
10 | + * are not thread-safe. | |
11 | + */ | |
12 | #define capi20_cmsg2str capi_cmsg2str | |
13 | char *capi_cmsg2str(_cmsg * cmsg); | |
14 | ||
15 | diff -Naur capi20.orig/convert.c capi20/convert.c | |
16 | --- capi20.orig/convert.c 2005-05-09 10:23:01.000000000 +0200 | |
17 | +++ capi20/convert.c 2007-03-15 01:20:13.000000000 +0100 | |
18 | @@ -894,10 +894,14 @@ | |
19 | static void bufprint(char *fmt,...) | |
20 | { | |
21 | va_list f; | |
22 | + size_t space = buf + sizeof(buf) - p, len; | |
23 | va_start(f, fmt); | |
24 | - vsprintf(p, fmt, f); | |
25 | + len = vsnprintf(p, space, fmt, f); | |
26 | va_end(f); | |
27 | - p += strlen(p); | |
28 | + if (len < space - 1) | |
29 | + p += len; | |
30 | + else | |
31 | + p += space - 1; | |
32 | } | |
33 | ||
34 | static void printstructlen(_cbyte * m, unsigned len) |