Fix more GCC signedness warnings.
LIBNETLINK=../lib/libnetlink.a ../lib/libutil.a
-all: flex_check Config
+all: Config
@for i in $(SUBDIRS); \
do $(MAKE) $(MFLAGS) -C $$i; done
-flex_check:
- @if [ -z "`flex -h | grep '^Usage: flex '`" ]; then \
- echo "GNU flex required, please install it."; \
- echo " see http://lex.sourceforge.net"; \
- exit 1; \
- fi
-
Config:
sh configure $(KERNEL_INCLUDE)
addattr_l(&req.n, sizeof(req), NDA_DST, &dst.data, dst.bytelen);
if (lla && strcmp(lla, "null")) {
- __u8 llabuf[16];
+ char llabuf[16];
int l;
l = ll_addr_a2n(llabuf, sizeof(llabuf), lla);
for (i = - (plen % 2), j = 0; j < len; i += 2, j++) {
char vbuf[3];
- char val;
+ __u8 val;
vbuf[0] = i >= 0 ? p[i] : '0';
vbuf[1] = p[i + 1];
void server_loop(int fd)
{
- struct timeval snaptime;
+ struct timeval snaptime = { 0 };
struct pollfd p;
p.fd = fd;
p.events = p.revents = POLLIN;
int status;
int tdiff;
struct timeval now;
+
gettimeofday(&now, NULL);
tdiff = T_DIFF(now, snaptime);
if (tdiff >= scan_interval) {
snaptime = now;
tdiff = 0;
}
+
if (poll(&p, 1, tdiff + scan_interval) > 0
&& (p.revents&POLLIN)) {
int clnt = accept(fd, NULL, NULL);
int verify_forging(int fd)
{
struct ucred cred;
- int olen = sizeof(cred);
+ socklen_t olen = sizeof(cred);
+
if (getsockopt(fd, SOL_SOCKET, SO_PEERCRED, (void*)&cred, &olen) ||
olen < sizeof(cred))
return -1;
void server_loop(int fd)
{
- struct timeval snaptime;
+ struct timeval snaptime = { 0 };
struct pollfd p;
p.fd = fd;
p.events = p.revents = POLLIN;
int verify_forging(int fd)
{
struct ucred cred;
- int olen = sizeof(cred);
+ socklen_t olen = sizeof(cred);
+
if (getsockopt(fd, SOL_SOCKET, SO_PEERCRED, (void*)&cred, &olen) ||
olen < sizeof(cred))
return -1;
unsigned long long val[256*4];
double rate[256*4];
- __u8 signature[128];
+ char signature[128];
};
struct rtacct_data kern_db_static;
void server_loop(int fd)
{
- struct timeval snaptime;
+ struct timeval snaptime = { 0 };
struct pollfd p;
p.fd = fd;
p.events = p.revents = POLLIN;
- sprintf(kern_db->signature, "%d.%lu sampling_interval=%d time_const=%d",
- getpid(), (unsigned long)random(), scan_interval/1000, time_constant/1000);
+ sprintf(kern_db->signature,
+ "%u.%lu sampling_interval=%d time_const=%d",
+ (unsigned) getpid(), (unsigned long)random(),
+ scan_interval/1000, time_constant/1000);
pad_kern_table(kern_db, read_kern_table(kern_db->ival));
int verify_forging(int fd)
{
struct ucred cred;
- int olen = sizeof(cred);
+ socklen_t olen = sizeof(cred);
+
if (getsockopt(fd, SOL_SOCKET, SO_PEERCRED, (void*)&cred, &olen) ||
olen < sizeof(cred))
return -1;
extern int ematch_argc;
extern char **ematch_argv;
+ #define yylval ematch_lval
+
#define NEXT_EM_ARG() do { ematch_argc--; ematch_argv++; } while(0);
#define YY_INPUT(buf, result, max_size) \
%x str
-%option 8bit stack warn bison-bridge noyywrap prefix="ematch_"
+%option 8bit stack warn noyywrap prefix="ematch_"
%%
static unsigned char *strbuf;
static unsigned int strbuf_size;
static unsigned int strbuf_index;
- static inline void strbuf_enlarge(void)
+ static void strbuf_enlarge(void)
{
strbuf_size += 512;
strbuf = realloc(strbuf, strbuf_size);
}
- static inline void strbuf_append_char(unsigned char c)
+ static void strbuf_append_char(unsigned char c)
{
while (strbuf_index >= strbuf_size)
strbuf_enlarge();
strbuf[strbuf_index++] = c;
}
- static inline void strbuf_append_charp(unsigned char *s)
+ static void strbuf_append_charp(unsigned char *s)
{
while (strbuf_index >= strbuf_size)
strbuf_enlarge();
<str>\" {
BEGIN(INITIAL);
- yylval->b = bstr_new(strbuf, strbuf_index);
- yylval->b->quoted = 1;
+ yylval.b = bstr_new(strbuf, strbuf_index);
+ yylval.b->quoted = 1;
return ATTRIBUTE;
}
[nN][oO][tT] return NOT;
"(" |
")" {
- return yylval->i = *yytext;
+ return yylval.i = *yytext;
}
[^ \t\r\n()]+ {
- yylval->b = bstr_alloc(yytext);
- if (yylval->b == NULL)
+ yylval.b = bstr_alloc(yytext);
+ if (yylval.b == NULL)
return ERROR;
return ATTRIBUTE;
}
%}
%locations
-%pure_parser
%token-table
%error-verbose
%name-prefix="ematch_"
}
%{
- extern int yylex(YYSTYPE *, YYLTYPE *);
+ extern int ematch_lex(void);
extern void yyerror(char *s);
extern struct ematch *ematch_root;
extern char *ematch_err;
#define __TC_EMATCH_H_
#include <ctype.h>
+#include <stdlib.h>
+#include <string.h>
#include "utils.h"
#include "tc_util.h"