Skip to content

Commit

Permalink
Address some Coverity warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
matt335672 committed Jan 13, 2025
1 parent a0f1b65 commit 2a4b40a
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 7 deletions.
19 changes: 16 additions & 3 deletions common/os_calls.c
Original file line number Diff line number Diff line change
Expand Up @@ -1805,7 +1805,7 @@ g_set_wait_obj(tintptr obj)
return 0;
}
fd = obj >> 16;
to_write = 4;
to_write = sizeof(buf);
written = 0;
while (written < to_write)
{
Expand All @@ -1823,12 +1823,13 @@ g_set_wait_obj(tintptr obj)
return 1;
}
}
else if (error > 0)
else if (error > 0 && error <= (int)sizeof(buf))
{
written += error;
}
else
{
// Shouldn't get here.
return 1;
}
}
Expand Down Expand Up @@ -2297,15 +2298,27 @@ g_file_set_cloexec(int fd, int status)
struct list *
g_get_open_fds(int min, int max)
{
if (min < 0)
{
min = 0;
}

struct list *result = list_create();

if (result != NULL)
{
if (max < 0)
{
max = sysconf(_SC_OPEN_MAX);
// sysconf() returns a long. Limit it to a sane value
#define SANE_MAX 100000
long sc_max = sysconf(_SC_OPEN_MAX);
max = (sc_max < 0) ? 0 :
(sc_max > (long)SANE_MAX) ? SANE_MAX :
sc_max;
#undef SANE_MAX
}

// max and min are now both guaranteed to be >= 0
if (max > min)
{
struct pollfd *fds = g_new0(struct pollfd, max - min);
Expand Down
1 change: 1 addition & 0 deletions common/string_calls.c
Original file line number Diff line number Diff line change
Expand Up @@ -444,6 +444,7 @@ g_atoix(const char *str)
str += 2;
base = 16;
}
//coverity[OVERRUN:FALSE]
return strtol(str, NULL, base);
}

Expand Down
2 changes: 1 addition & 1 deletion libipm/libipm_recv.c
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ libipm_msg_in_check_available(struct trans *trans, int *available)
enum libipm_status
libipm_msg_in_wait_available(struct trans *trans)
{
tbus wobj[1];
tbus wobj[2]; // trans_get_wait_objs() can return at most 2 elements
int ocnt = 0;
enum libipm_status rv = E_LI_SUCCESS;

Expand Down
4 changes: 1 addition & 3 deletions sesman/sesexec/session.c
Original file line number Diff line number Diff line change
Expand Up @@ -495,9 +495,6 @@ start_x_server(struct login_info *login_info,
unknown_session_type = 1;
}

g_free(passwd_file);
passwd_file = NULL;

if (xserver_params == NULL)
{
LOG(LOG_LEVEL_ERROR, "Out of memory allocating X server params");
Expand All @@ -520,6 +517,7 @@ start_x_server(struct login_info *login_info,
}

/* should not get here */
g_free(passwd_file);
list_delete(xserver_params);
LOG(LOG_LEVEL_ERROR, "A fatal error has occurred attempting "
"to start the X server on display %u, aborting connection",
Expand Down

0 comments on commit 2a4b40a

Please sign in to comment.