(root)/
glibc-2.38/
string/
bug-strncat1.c
       1  #undef __USE_STRING_INLINES
       2  #define __USE_STRING_INLINES
       3  #include <sys/cdefs.h>
       4  #include <libc-diag.h>
       5  #if __GNUC_PREREQ (8, 0)
       6  /* GCC warns about strncat truncating output; this is deliberately
       7     tested here.  If fortify is enabled, it is also triggered by the
       8     wrappers. */
       9  DIAG_IGNORE_NEEDS_COMMENT (8, "-Wstringop-truncation");
      10  #endif
      11  #include <stdio.h>
      12  #include <stdlib.h>
      13  #include <string.h>
      14  
      15  char d[3] = "\0\1\2";
      16  
      17  int
      18  main (void)
      19  {
      20    DIAG_PUSH_NEEDS_COMMENT;
      21    strncat (d, "\5\6", 1);
      22    DIAG_POP_NEEDS_COMMENT;
      23    if (d[0] != '\5')
      24      {
      25        puts ("d[0] != '\\5'");
      26        exit (1);
      27      }
      28    if (d[1] != '\0')
      29      {
      30        puts ("d[1] != '\\0'");
      31        exit (1);
      32      }
      33    if (d[2] != '\2')
      34      {
      35        puts ("d[2] != '\\2'");
      36        exit (1);
      37      }
      38  
      39    return 0;
      40  }