Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8214776

Avoid GCC 8.X strncpy() errors in JFR code

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P4
    • Resolution: Duplicate
    • Affects Version/s: 12
    • Fix Version/s: 13
    • Component/s: hotspot
    • Subcomponent:
      jfr

      Description

      Gcc 8 has strict (and sometimes buggy) tests for strncpy() misuse.

      A common pattern in the JDK is:

         const size_t not_impl_len = strlen(not_impl);
         *str = NEW_C_HEAP_ARRAY(char, not_impl_len+1, mtTracing);
         strncpy(*str, not_impl, not_impl_len);
         (*str)[not_impl_len] = '\0';

      More efficient code that does not cause GCC warnings would use strncpy() to add the trailing null, resulting in shorter code:

         strncpy(*str, not_impl, not_impl_len);
         (*str)[not_impl_len] = '\0';

      becomes:

         strncpy(*str, not_impl, not_impl_len+1);

      (found by compiling with GCC 8.1)

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                stooke Simon Tooke
                Reporter:
                sgehwolf Severin Gehwolf
              • Votes:
                0 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: