diff --git a/src/share/vm/jfr/recorder/checkpoint/types/jfrThreadGroup.cpp b/src/share/vm/jfr/recorder/checkpoint/types/jfrThreadGroup.cpp index 3e34dd6121f765c0b59fddd6444775e5a8101b15..d090a1891dbbb3158050e25b2dea22386ea10ef2 100644 --- a/src/share/vm/jfr/recorder/checkpoint/types/jfrThreadGroup.cpp +++ b/src/share/vm/jfr/recorder/checkpoint/types/jfrThreadGroup.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 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 @@ -238,9 +238,8 @@ void JfrThreadGroup::JfrThreadGroupEntry::set_thread_group_name(const char* tgna assert(_thread_group_name == NULL, "invariant"); if (tgname != NULL) { size_t len = strlen(tgname); - _thread_group_name = JfrCHeapObj::new_array(len+1); - strncpy(_thread_group_name, tgname, len); - _thread_group_name[len] = '\0'; + _thread_group_name = JfrCHeapObj::new_array(len + 1); + strncpy(_thread_group_name, tgname, len + 1); } } diff --git a/src/share/vm/jfr/recorder/repository/jfrChunkState.cpp b/src/share/vm/jfr/recorder/repository/jfrChunkState.cpp index fd0b8dffb176ede1da3711dd7246d5d686f22b11..1ae0888f7170b49ecdb961076038a7bdd0cb0d3e 100644 --- a/src/share/vm/jfr/recorder/repository/jfrChunkState.cpp +++ b/src/share/vm/jfr/recorder/repository/jfrChunkState.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 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 @@ -99,8 +99,7 @@ static char* copy_path(const char* path) { assert(path != NULL, "invariant"); const size_t path_len = strlen(path); char* new_path = JfrCHeapObj::new_array(path_len + 1); - strncpy(new_path, path, path_len); - new_path[path_len] = '\0'; + strncpy(new_path, path, path_len + 1); return new_path; } diff --git a/src/share/vm/jfr/recorder/repository/jfrRepository.cpp b/src/share/vm/jfr/recorder/repository/jfrRepository.cpp index f6c0f0eb90eb817da72fbcc1e5436e2893569058..f225ecf2e656701a62863018ece987903b277f54 100644 --- a/src/share/vm/jfr/recorder/repository/jfrRepository.cpp +++ b/src/share/vm/jfr/recorder/repository/jfrRepository.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 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 @@ -209,8 +209,7 @@ const char* const RepositoryIterator::filter(const char* entry) const { if (entry_name == NULL) { return NULL; } - strncpy(entry_name, entry, entry_len); - entry_name[entry_len] = '\0'; + strncpy(entry_name, entry, entry_len + 1); const char* const fully_qualified_path_entry = fully_qualified(entry_name); if (NULL == fully_qualified_path_entry) { return NULL; @@ -332,8 +331,7 @@ static const char* create_emergency_dump_path() { if (NULL == emergency_dump_path) { return NULL; } - strncpy(emergency_dump_path, buffer, emergency_filename_length); - emergency_dump_path[emergency_filename_length] = '\0'; + strncpy(emergency_dump_path, buffer, emergency_filename_length + 1); } return emergency_dump_path; } @@ -407,8 +405,7 @@ bool JfrRepository::set_path(const char* path) { if (_path == NULL) { return false; } - strncpy(_path, path, path_len); - _path[path_len] = '\0'; + strncpy(_path, path, path_len + 1); return true; }