title: valgrind invalid read size
body: <p>In the valgrind output below, can some explain the meaning of the top line that refrences strlen in a valgrind library.  Does this mean that valgrind itslef has a bug?</p>
  
  <pre><code>==26147== Invalid read of size 1
  ==26147==    at 0x4C2E0E2: strlen (in/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
  ==26147==    by 0x40263A: urldecode (server.c:1131)
  ==26147==    by 0x401853: main (server.c:199)
  ==26147==  Address 0xffefffaa0 is on thread 1's stack
  ==26147==  136 bytes below stack pointer
  
  char* urldecode(const char* s)
  {
      // check whether s is NULL
      if (s == NULL)
      {
          return NULL;
      }
  
      // allocate enough (zeroed) memory for an undecoded copy of s
      char* t = calloc(strlen(s) + 1, 1);  &lt;--- line 1131
  </code></pre>