[pdm-devel] [PATCH proxmox-datacenter-manager 2/3] api: privileged: fix fchownat call

Dominik Csapak d.csapak at proxmox.com
Tue Aug 12 10:03:26 CEST 2025



On 8/12/25 09:31, Lukas Wagner wrote:
> On Mon Aug 11, 2025 at 4:18 PM CEST, Stefan Hanreich wrote:
>> When starting the privileged API, the server would fail with the
>> following error messages:
>>
>> Error: unable to set ownership for api socket '/run/proxmox-datacenter-manager/priv.sock' - EINVAL: Invalid argument
>>
>> chown(2) only supports the AT_SYMLINK_NOFOLLOW, not AT_SYMLINK_FOLLOW
>> so this was probably a oversight. Pass empty flags to fchownat
>> instead.
>>
>> Signed-off-by: Stefan Hanreich <s.hanreich at proxmox.com>
>> ---
>>   server/src/bin/proxmox-datacenter-privileged-api.rs | 13 +++----------
>>   1 file changed, 3 insertions(+), 10 deletions(-)
>>
>> diff --git a/server/src/bin/proxmox-datacenter-privileged-api.rs b/server/src/bin/proxmox-datacenter-privileged-api.rs
>> index 66033eb..bd2c6dd 100644
>> --- a/server/src/bin/proxmox-datacenter-privileged-api.rs
>> +++ b/server/src/bin/proxmox-datacenter-privileged-api.rs
>> @@ -161,16 +161,9 @@ async fn run() -> Result<(), Error> {
>>                   format_err!("unable to set mode for api socket '{sockpath:?}' - {err}")
>>               })?;
>>   
>> -            fchownat(
>> -                None,
>> -                sockpath,
>> -                None,
>> -                Some(api_user.gid),
>> -                AtFlags::AT_SYMLINK_FOLLOW,
>> -            )
>> -            .map_err(|err| {
>> -                format_err!("unable to set ownership for api socket '{sockpath}' - {err}")
>> -            })?;
>> +            fchownat(None, sockpath, None, Some(api_user.gid), AtFlags::empty()).map_err(
>> +                |err| format_err!("unable to set ownership for api socket '{sockpath}' - {err}"),
>> +            )?;
>>   
>>               log::info!("created socket, notifying readiness to systemd and starting API server");
>>   
> 
> For what it's worth, I already sent a similar patch that was already
> applied by Thomas, but I guess he did not push the changes.
> 
> My patch used AT_SYMLINK_NOFOLLOW instead of passing no flags, but since
> the socket is not and probably will never be a symlink, it should not
> matter.
> 
> https://lore.proxmox.com/pdm-devel/20250807123712.218439-1-l.wagner@proxmox.com/T/#t
> 
> 
> 
for that reason i refrained from applying this one for now, don't want
to create git conflicts with thomas branch maybe...






More information about the pdm-devel mailing list