53bc57cf59
CVE-2026-32107. Prevent possible privilege escalation if setuid() fails.
59 lines
1.4 KiB
C
59 lines
1.4 KiB
C
/**
|
|
* xrdp: A Remote Desktop Protocol server.
|
|
*
|
|
* Copyright (C) Jay Sorg 2004-2013
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
/**
|
|
*
|
|
* @file env.h
|
|
* @brief User environment handling code declarations
|
|
* @author Jay Sorg
|
|
*
|
|
*/
|
|
|
|
#ifndef ENV_H
|
|
#define ENV_H
|
|
|
|
#include "list.h"
|
|
|
|
/**
|
|
*
|
|
* @brief Creates vnc password file
|
|
* @param filename VNC password file name
|
|
* @param password The password to be encrypted
|
|
* @return 0 on success, 1 on error
|
|
*
|
|
*/
|
|
int
|
|
env_check_password_file(const char *filename, const char *password);
|
|
|
|
/**
|
|
*
|
|
* @brief Sets user environment ($PATH, $HOME, $UID, and others)
|
|
* @param uid user ID
|
|
* @param env_names List of session environment variables to set
|
|
* @param env_values List of session environment values to set
|
|
*
|
|
* On error, the calling process exits, to prevent privilege
|
|
* escalations.
|
|
*
|
|
*/
|
|
void
|
|
env_set_user(int uid,
|
|
const struct list *env_names, const struct list *env_values);
|
|
|
|
#endif
|