run_as_fct cmd;
uid_t prev_euid;
+ memset(&sendret, 0, sizeof(sendret));
+ sendret.fd = -1;
+
/*
* Stage 1: Receive run_as_data struct from the master.
* The structure contains the command type and all the parameters needed for
if (data.gid != getegid()) {
ret = setegid(data.gid);
if (ret < 0) {
+ sendret._error = true;
+ sendret._errno = errno;
PERROR("setegid");
goto write_return;
}
if (data.uid != prev_euid) {
ret = seteuid(data.uid);
if (ret < 0) {
+ sendret._error = true;
+ sendret._errno = errno;
PERROR("seteuid");
goto write_return;
}
PERROR("Error reading response from run_as");
ret = -1;
ret_value->_errno = errno;
+ goto end;
}
/*
struct run_as_data data;
struct run_as_ret ret;
+ memset(&data, 0, sizeof(data));
+ memset(&ret, 0, sizeof(ret));
+
DBG3("extract_elf_symbol_offset() on fd=%d and function=%s "
"with for uid %d and gid %d", fd, function, (int) uid, (int) gid);
struct run_as_data data;
struct run_as_ret ret;
+ memset(&data, 0, sizeof(data));
+ memset(&ret, 0, sizeof(ret));
+
DBG3("extract_sdt_probe_offsets() on fd=%d, probe_name=%s and "
"provider_name=%s with for uid %d and gid %d", fd, probe_name,
provider_name, (int) uid, (int) gid);