~mdw
/
secnet
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
bugfix: -fno-strict-aliasing, because tun.c breaks the rules.
[secnet]
/
secnet.c
diff --git
a/secnet.c
b/secnet.c
index
16fa198
..
7869182
100644
(file)
--- a/
secnet.c
+++ b/
secnet.c
@@
-1,5
+1,7
@@
#include "secnet.h"
#include <stdio.h>
#include "secnet.h"
#include <stdio.h>
+#include <assert.h>
+#include <limits.h>
#include <string.h>
#include <getopt.h>
#include <errno.h>
#include <string.h>
#include <getopt.h>
#include <errno.h>
@@
-30,13
+32,13
@@
struct poll_interest {
beforepoll_fn *before;
afterpoll_fn *after;
void *state;
beforepoll_fn *before;
afterpoll_fn *after;
void *state;
-
u
int32_t max_nfds;
-
u
int32_t nfds;
+ int32_t max_nfds;
+ int32_t nfds;
cstring_t desc;
struct poll_interest *next;
};
static struct poll_interest *reg=NULL;
cstring_t desc;
struct poll_interest *next;
};
static struct poll_interest *reg=NULL;
-static
u
int32_t total_nfds=10;
+static int32_t total_nfds=10;
static bool_t finished=False;
static bool_t finished=False;
@@
-219,7
+221,7
@@
static void setup(dict_t *config)
}
void register_for_poll(void *st, beforepoll_fn *before,
}
void register_for_poll(void *st, beforepoll_fn *before,
- afterpoll_fn *after,
u
int32_t max_nfds, cstring_t desc)
+ afterpoll_fn *after, int32_t max_nfds, cstring_t desc)
{
struct poll_interest *i;
{
struct poll_interest *i;
@@
-230,6
+232,7
@@
void register_for_poll(void *st, beforepoll_fn *before,
i->max_nfds=max_nfds;
i->nfds=0;
i->desc=desc;
i->max_nfds=max_nfds;
i->nfds=0;
i->desc=desc;
+ assert(total_nfds < INT_MAX - max_nfds);
total_nfds+=max_nfds;
i->next=reg;
reg=i;
total_nfds+=max_nfds;
i->next=reg;
reg=i;