X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=misc%2Frtacct.c;h=0d8ff7b9d5d78c75d5cd80ffeb550b2a4434bf84;hb=refs%2Fheads%2Ffedora;hp=5c6748b9cdfddf72b3bfad7908899d275bcdea64;hpb=cb820e861caa85bb3942ab0c673e04b9408be0ad;p=iproute2.git diff --git a/misc/rtacct.c b/misc/rtacct.c index 5c6748b..0d8ff7b 100644 --- a/misc/rtacct.c +++ b/misc/rtacct.c @@ -68,7 +68,7 @@ struct rtacct_data unsigned long long val[256*4]; double rate[256*4]; - __u8 signature[128]; + char signature[128]; }; struct rtacct_data kern_db_static; @@ -363,13 +363,15 @@ void pad_kern_table(struct rtacct_data *dat, __u32 *ival) 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)); @@ -411,7 +413,8 @@ void server_loop(int fd) 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;