From 3589d6c01fd962b6c4a831180cef47aef0c60cc0 Mon Sep 17 00:00:00 2001 From: Mike Yuan Date: Wed, 30 Apr 2025 19:43:20 +0200 Subject: [PATCH] process-util: assert on pid in procfs_file_alloca(), use strjoina() --- src/basic/process-util.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/basic/process-util.h b/src/basic/process-util.h index fd24ee41ce..df6daf1839 100644 --- a/src/basic/process-util.h +++ b/src/basic/process-util.h @@ -12,6 +12,7 @@ #include #include "alloc-util.h" +#include "assert-util.h" #include "format-util.h" #include "macro.h" #include "pidref.h" @@ -22,10 +23,10 @@ pid_t _pid_ = (pid); \ const char *_field_ = (field); \ char *_r_; \ - if (_pid_ == 0) { \ - _r_ = newa(char, STRLEN("/proc/self/") + strlen(_field_) + 1); \ - strcpy(stpcpy(_r_, "/proc/self/"), _field_); \ - } else { \ + if (_pid_ == 0) \ + _r_ = strjoina("/proc/self/", _field_); \ + else { \ + assert(_pid_ > 0); \ _r_ = newa(char, STRLEN("/proc/") + DECIMAL_STR_MAX(pid_t) + 1 + strlen(_field_) + 1); \ sprintf(_r_, "/proc/" PID_FMT "/%s", _pid_, _field_); \ } \