diff --git a/deps/uv/src/unix/proctitle.c b/deps/uv/src/unix/proctitle.c index 2909971022a..9057074a316 100644 --- a/deps/uv/src/unix/proctitle.c +++ b/deps/uv/src/unix/proctitle.c @@ -81,7 +81,14 @@ char** uv_setup_args(int argc, char** argv) { uv_err_t uv_set_process_title(const char* title) { - uv_strlcpy(process_title.str, title, process_title.len); + /* proctitle doesn't need to be zero terminated, last char is always '\0'. + * Use strncpy(), it pads the remainder with nul bytes. Avoids garbage output + * on systems where `ps aux` prints the entire proctitle buffer, not just the + * characters up to the first '\0'. + */ + if (process_title.len > 0) + strncpy(process_title.str, title, process_title.len - 1); + return uv_ok_; }