# HG changeset patch # User clanger # Date 1520590828 -3600 # Fri Mar 09 11:20:28 2018 +0100 # Node ID 78177570d33665453ab7da886485233f6436b569 # Parent 7be58576e71a5c4878548164eb27477b95cbf7a9 8199010: attachListener.hpp: Fix potential null termination issue found by coverity scans diff --git a/src/hotspot/share/services/attachListener.hpp b/src/hotspot/share/services/attachListener.hpp --- a/src/hotspot/share/services/attachListener.hpp +++ b/src/hotspot/share/services/attachListener.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2018, 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 @@ -122,9 +122,10 @@ // set the operation name void set_name(char* name) { - size_t len = strlen(name); - assert(len <= name_length_max, "exceeds maximum name length"); - memcpy(_name, name, MIN2(len + 1, (size_t)name_length_max)); + assert(strlen(name) <= name_length_max, "exceeds maximum name length"); + size_t len = MIN2(strlen(name), (size_t)name_length_max); + memcpy(_name, name, len); + _name[len] = '\0'; } // get an argument value @@ -139,9 +140,10 @@ if (arg == NULL) { _arg[i][0] = '\0'; } else { - size_t len = strlen(arg); - assert(len <= arg_length_max, "exceeds maximum argument length"); - memcpy(_arg[i], arg, MIN2(len + 1, (size_t)arg_length_max)); + assert(strlen(arg) <= arg_length_max, "exceeds maximum argument length"); + size_t len = MIN2(strlen(arg), (size_t)arg_length_max); + memcpy(_arg[i], arg, len); + _arg[i][len] = '\0'; } }