summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
45cfab8)
This macro replaces these idioms:
memset(&foo,0,sizeof(foo)); => FILLZERO(foo);
memset(foo,0,sizeof(*foo)); => FILLZERO(*foo);
This makes it impossible to accidentally get the wrong size.
Use this macro in all such patterns in secnet, apart from two in
site.c which are going to be removed soon anyway.
No intentional functional change.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
#define STRING2(x) #x
#define STRING(x) STRING2(x)
#define STRING2(x) #x
#define STRING(x) STRING2(x)
+#define FILLZERO(obj) (memset(&(obj),0,sizeof((obj))))
+
{
struct transform_inst *ti=sst;
{
struct transform_inst *ti=sst;
- memset(&ti->cryptkey,0,sizeof(ti->cryptkey));
- memset(&ti->mackey,0,sizeof(ti->mackey));
+ FILLZERO(ti->cryptkey);
+ FILLZERO(ti->mackey);
{
struct transform_inst *st=sst;
{
struct transform_inst *st=sst;
- memset(st,0,sizeof(*st)); /* Destroy key material */
+ FILLZERO(*st); /* Destroy key material */
struct sockaddr_in *sa;
int action;
struct sockaddr_in *sa;
int action;
- memset(&rt,0,sizeof(rt));
sa=(struct sockaddr_in *)&rt.rt_dst;
sa->sin_family=AF_INET;
sa->sin_addr.s_addr=htonl(nets->list[i].prefix);
sa=(struct sockaddr_in *)&rt.rt_dst;
sa->sin_family=AF_INET;
sa->sin_addr.s_addr=htonl(nets->list[i].prefix);
fatal_perror("%s: can't open device file %s",st->nl.name,
st->device_path);
}
fatal_perror("%s: can't open device file %s",st->nl.name,
st->device_path);
}
- memset(&ifr,0,sizeof(ifr));
ifr.ifr_flags = IFF_TUN | IFF_NO_PI; /* Just send/receive IP packets,
no extra headers */
if (st->interface_name)
ifr.ifr_flags = IFF_TUN | IFF_NO_PI; /* Just send/receive IP packets,
no extra headers */
if (st->interface_name)
/* Interface address */
strncpy(ifr.ifr_name,st->interface_name,IFNAMSIZ);
sa=(struct sockaddr_in *)&ifr.ifr_addr;
/* Interface address */
strncpy(ifr.ifr_name,st->interface_name,IFNAMSIZ);
sa=(struct sockaddr_in *)&ifr.ifr_addr;
- memset(sa,0,sizeof(*sa));
sa->sin_family=AF_INET;
sa->sin_addr.s_addr=htonl(st->local_address);
if (ioctl(fd,SIOCSIFADDR, &ifr)!=0) {
sa->sin_family=AF_INET;
sa->sin_addr.s_addr=htonl(st->local_address);
if (ioctl(fd,SIOCSIFADDR, &ifr)!=0) {
/* Netmask */
strncpy(ifr.ifr_name,st->interface_name,IFNAMSIZ);
sa=(struct sockaddr_in *)&ifr.ifr_netmask;
/* Netmask */
strncpy(ifr.ifr_name,st->interface_name,IFNAMSIZ);
sa=(struct sockaddr_in *)&ifr.ifr_netmask;
- memset(sa,0,sizeof(*sa));
sa->sin_family=AF_INET;
sa->sin_addr.s_addr=htonl(0xffffffff);
if (ioctl(fd,SIOCSIFNETMASK, &ifr)!=0) {
sa->sin_family=AF_INET;
sa->sin_addr.s_addr=htonl(0xffffffff);
if (ioctl(fd,SIOCSIFNETMASK, &ifr)!=0) {
/* Destination address (point-to-point) */
strncpy(ifr.ifr_name,st->interface_name,IFNAMSIZ);
sa=(struct sockaddr_in *)&ifr.ifr_dstaddr;
/* Destination address (point-to-point) */
strncpy(ifr.ifr_name,st->interface_name,IFNAMSIZ);
sa=(struct sockaddr_in *)&ifr.ifr_dstaddr;
- memset(sa,0,sizeof(*sa));
sa->sin_family=AF_INET;
sa->sin_addr.s_addr=htonl(st->nl.secnet_address);
if (ioctl(fd,SIOCSIFDSTADDR, &ifr)!=0) {
sa->sin_family=AF_INET;
sa->sin_addr.s_addr=htonl(st->nl.secnet_address);
if (ioctl(fd,SIOCSIFDSTADDR, &ifr)!=0) {
st->loc.file,st->loc.line);
}
st->loc.file,st->loc.line);
}
- memset(&addr, 0, sizeof(addr));
addr.sin_family=AF_INET;
addr.sin_addr.s_addr=htonl(st->addr);
addr.sin_port=htons(st->port);
addr.sin_family=AF_INET;
addr.sin_addr.s_addr=htonl(st->addr);
addr.sin_port=htons(st->port);
l=dict_lookup(d,"proxy");
if (l) {
st->use_proxy=True;
l=dict_lookup(d,"proxy");
if (l) {
st->use_proxy=True;
- memset(&st->proxy,0,sizeof(st->proxy));
st->proxy.sin_family=AF_INET;
i=list_elem(l,0);
if (!i || i->type!=t_string) {
st->proxy.sin_family=AF_INET;
i=list_elem(l,0);
if (!i || i->type!=t_string) {