aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/analyzer/strndup-pr108252.c
blob: 3e64f27c29a6bf330a13c2da584b157a6ad6e43a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
typedef __SIZE_TYPE__ size_t;

extern char *strndup (const char *__s, size_t sz)
  __attribute__ ((__nothrow__ , __leaf__, __malloc__, __nonnull__ (1)));

struct {
  /* [...snip...] */
  char *listen_default_ciphers;
  char *connect_default_ciphers;
  /* [...snip...] */
} g;

int parse_global_ciphers(char **args)
{
  char **target;
  target = ((args[0][12] == 'b')
	    ? &g.listen_default_ciphers
	    : &g.connect_default_ciphers);
  *target = strndup(args[1], 42);
  return 0; /* { dg-bogus "leak" } */
}