[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] [gnunet] 02/02: fix dereferencing uninitialized rs/ws; asse
From: |
gnunet |
Subject: |
[GNUnet-SVN] [gnunet] 02/02: fix dereferencing uninitialized rs/ws; assert non-NULL before dereferencing network/file handles |
Date: |
Sun, 07 Jan 2018 16:19:19 +0100 |
This is an automated email from the git hooks/post-receive script.
lurchi pushed a commit to branch master
in repository gnunet.
commit dca5b11d13330d8e5252086f470ce0a895c00de1
Author: lurchi <address@hidden>
AuthorDate: Sun Jan 7 16:18:32 2018 +0100
fix dereferencing uninitialized rs/ws; assert non-NULL before dereferencing
network/file handles
---
src/util/scheduler.c | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/src/util/scheduler.c b/src/util/scheduler.c
index fecbc0de5..9d37231e7 100644
--- a/src/util/scheduler.c
+++ b/src/util/scheduler.c
@@ -756,8 +756,9 @@ init_fd_info (struct GNUNET_SCHEDULER_Task *t,
t->fds = fdi;
if (1 == read_nh_len)
{
+ GNUNET_assert (NULL != read_nh);
+ GNUNET_assert (NULL != *read_nh);
fdi->fd = *read_nh;
- GNUNET_assert (NULL != fdi->fd);
fdi->et = GNUNET_SCHEDULER_ET_IN;
fdi->sock = GNUNET_NETWORK_get_fd (*read_nh);
t->read_fd = fdi->sock;
@@ -765,8 +766,9 @@ init_fd_info (struct GNUNET_SCHEDULER_Task *t,
}
else if (1 == write_nh_len)
{
+ GNUNET_assert (NULL != write_nh);
+ GNUNET_assert (NULL != *write_nh);
fdi->fd = *write_nh;
- GNUNET_assert (NULL != fdi->fd);
fdi->et = GNUNET_SCHEDULER_ET_OUT;
fdi->sock = GNUNET_NETWORK_get_fd (*write_nh);
t->read_fd = -1;
@@ -774,8 +776,9 @@ init_fd_info (struct GNUNET_SCHEDULER_Task *t,
}
else if (1 == read_fh_len)
{
+ GNUNET_assert (NULL != read_fh);
+ GNUNET_assert (NULL != *read_fh);
fdi->fh = *read_fh;
- GNUNET_assert (NULL != fdi->fh);
fdi->et = GNUNET_SCHEDULER_ET_IN;
fdi->sock = (*read_fh)->fd; // FIXME: does not work under WIN32
t->read_fd = fdi->sock;
@@ -783,8 +786,9 @@ init_fd_info (struct GNUNET_SCHEDULER_Task *t,
}
else
{
+ GNUNET_assert (NULL != write_fh);
+ GNUNET_assert (NULL != *write_fh);
fdi->fh = *write_fh;
- GNUNET_assert (NULL != fdi->fh);
fdi->et = GNUNET_SCHEDULER_ET_OUT;
fdi->sock = (*write_fh)->fd; // FIXME: does not work under WIN32
t->read_fd = -1;
@@ -1750,8 +1754,11 @@ GNUNET_SCHEDULER_add_select (enum
GNUNET_SCHEDULER_Priority prio,
const struct GNUNET_DISK_FileHandle **write_fhandles;
unsigned int read_nhandles_len, write_nhandles_len,
read_fhandles_len, write_fhandles_len;
+ int no_fdsets = (NULL == rs) && (NULL == ws);
+ int no_socket_descriptors =
+ ((NULL != rs) && (0 == rs->nsds)) && ((NULL != ws) && (0 == ws->nsds));
- if (((NULL == rs) && (NULL == ws)) || ((0 == rs->nsds) && (0 == ws->nsds)))
+ if (no_fdsets || no_socket_descriptors)
return GNUNET_SCHEDULER_add_delayed_with_priority (delay,
prio,
task,
--
To stop receiving notification emails like this one, please contact
address@hidden