8220072: GCC 8.3 reports errors in java.base
authordchuyko
Wed, 22 May 2019 21:33:58 +0300
changeset 54993 65b0b63d7f14
parent 54992 4cc9109caffd
child 54994 faf89c9568bd
8220072: GCC 8.3 reports errors in java.base Reviewed-by: rriggs
src/java.base/unix/native/libjava/canonicalize_md.c
--- a/src/java.base/unix/native/libjava/canonicalize_md.c	Wed May 22 10:51:30 2019 -0700
+++ b/src/java.base/unix/native/libjava/canonicalize_md.c	Wed May 22 21:33:58 2019 +0300
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1994, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1994, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -211,11 +211,10 @@
         char *p, *end, *r = NULL;
         char path[PATH_MAX + 1];
 
-        strncpy(path, original, sizeof(path));
-        if (path[PATH_MAX] != '\0') {
-            errno = ENAMETOOLONG;
-            return -1;
-        }
+        // strlen(original) <= PATH_MAX, see above
+        strncpy(path, original, PATH_MAX);
+        // append null for == case
+        path[PATH_MAX] = '\0';
         end = path + strlen(path);
 
         for (p = end; p > path;) {