code quality: Address Copilot review comments

This commit is contained in:
matt335672
2026-02-27 11:51:39 +00:00
parent 0c92f5f5a2
commit 12102934b3
4 changed files with 27 additions and 12 deletions
+9 -2
View File
@@ -232,7 +232,10 @@ g_get_display_string(char buff[], unsigned int bufflen)
// Return the unqualified part of the name // Return the unqualified part of the name
p = strrchr(str, '/'); p = strrchr(str, '/');
p = (p != NULL) ? (p + 1) : str; p = (p != NULL) ? (p + 1) : str;
strlcpy(buff, p, bufflen); if (strlcpy(buff, p, bufflen) >= bufflen)
{
rv = -1; /* Buffer overflow */
}
} }
else if ((str = g_getenv("DISPLAY")) != NULL) else if ((str = g_getenv("DISPLAY")) != NULL)
{ {
@@ -240,7 +243,11 @@ g_get_display_string(char buff[], unsigned int bufflen)
if (n >= 0) if (n >= 0)
{ {
g_snprintf(buff, bufflen, "X11-%d", n); if ((unsigned int)g_snprintf(buff, bufflen, "X11-%d", n)
>= bufflen)
{
rv = -1; /* Buffer overflow */
}
} }
else else
{ {
+8 -6
View File
@@ -682,13 +682,12 @@ start_x_server(const struct login_info *login_info,
g_cfg->env_names, g_cfg->env_names,
g_cfg->env_values); g_cfg->env_values);
if (sp->type == SCP_SESSION_TYPE_XVNC) /* Allocate the passwd_file if required */
if (sp->type == SCP_SESSION_TYPE_XVNC &&
(passwd_file = get_xvnc_passwd_file_name(sp->x11_display)) == NULL)
{ {
char guid_str[GUID_STR_SIZE]; /* An error has been logged */
passwd_file = get_xvnc_passwd_file_name(sp->x11_display); return;
guid_to_str(&sp->guid, guid_str);
set_xvnc_passwd(passwd_file, guid_str);
} }
/* prepare the Xauthority stuff */ /* prepare the Xauthority stuff */
@@ -714,6 +713,7 @@ start_x_server(const struct login_info *login_info,
{ {
switch (sp->type) switch (sp->type)
{ {
char guid_str[GUID_STR_SIZE];
char port[256]; char port[256];
case SCP_SESSION_TYPE_XORG: case SCP_SESSION_TYPE_XORG:
@@ -721,6 +721,8 @@ start_x_server(const struct login_info *login_info,
break; break;
case SCP_SESSION_TYPE_XVNC: case SCP_SESSION_TYPE_XVNC:
guid_to_str(&sp->guid, guid_str);
set_xvnc_passwd(passwd_file, guid_str);
xserver_params = prepare_xvnc_xserver_params(sd, authfile, xserver_params = prepare_xvnc_xserver_params(sd, authfile,
passwd_file, NULL); passwd_file, NULL);
break; break;
+1 -1
View File
@@ -49,7 +49,7 @@ int main(int argc, char **argv)
if (g_get_display_string(disstr, sizeof(disstr)) < 0) if (g_get_display_string(disstr, sizeof(disstr)) < 0)
{ {
printf("Can't find teh display from the environment\n"); printf("Can't find the display from the environment\n");
return 1; return 1;
} }
+9 -3
View File
@@ -2963,7 +2963,7 @@ cleanup_states(struct xrdp_mm *self)
*/ */
static int static int
parse_chansrvport(const char *value, char *dest, int dest_size, int uid) parse_chansrvport(const char *value, char dest[], int dest_size, int uid)
{ {
int rv = 0; int rv = 0;
char dstr[MAX_DISPLAY_NAME_SIZE]; char dstr[MAX_DISPLAY_NAME_SIZE];
@@ -3003,8 +3003,14 @@ parse_chansrvport(const char *value, char *dest, int dest_size, int uid)
{ {
// X11 compatibility // X11 compatibility
int dnum = g_atoi(dstr); int dnum = g_atoi(dstr);
(void)g_get_display_string_from_x11_display( if (g_get_display_string_from_x11_display(
dnum, dstr, sizeof(dstr)); dnum, dstr, sizeof(dstr)) < 0)
{
LOG(LOG_LEVEL_WARNING,
"Ignoring chansrvport string "
"with bad X11 display number '%s'", value);
return -1;
}
} }
if (*end == ',') if (*end == ',')