From: Mike Yuan Date: Wed, 30 Apr 2025 17:43:20 +0000 (+0200) Subject: process-util: assert on pid in procfs_file_alloca(), use strjoina() X-Git-Tag: v258-rc1~704^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3589d6c01fd962b6c4a831180cef47aef0c60cc0;p=thirdparty%2Fsystemd.git process-util: assert on pid in procfs_file_alloca(), use strjoina() --- diff --git a/src/basic/process-util.h b/src/basic/process-util.h index fd24ee41ce2..df6daf1839d 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_); \ } \