diff --git a/src/solaris/native/java/io/canonicalize_md.c b/src/solaris/native/java/io/canonicalize_md.c index e985c39b31f74a90cd3d5060725591560e6cba58..cb8ce69c8858fd9b1c5ab6ca4870f4f3363c432f 100644 --- a/src/solaris/native/java/io/canonicalize_md.c +++ b/src/solaris/native/java/io/canonicalize_md.c @@ -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 @@ canonicalize(char *original, char *resolved, int len) 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;) {