]> git.pld-linux.org Git - packages/capi4k-utils.git/blob - capi4k-utils-msg2str_safety.patch
- rel 5
[packages/capi4k-utils.git] / capi4k-utils-msg2str_safety.patch
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)
This page took 0.041446 seconds and 3 git commands to generate.