[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r14138 - gnunet/src/vpn
From: |
gnunet |
Subject: |
[GNUnet-SVN] r14138 - gnunet/src/vpn |
Date: |
Mon, 10 Jan 2011 22:41:35 +0100 |
Author: toelke
Date: 2011-01-10 22:41:35 +0100 (Mon, 10 Jan 2011)
New Revision: 14138
Modified:
gnunet/src/vpn/gnunet-daemon-vpn.c
gnunet/src/vpn/gnunet-daemon-vpn.h
Log:
fix two "invalid read"s
Modified: gnunet/src/vpn/gnunet-daemon-vpn.c
===================================================================
--- gnunet/src/vpn/gnunet-daemon-vpn.c 2011-01-10 21:41:33 UTC (rev 14137)
+++ gnunet/src/vpn/gnunet-daemon-vpn.c 2011-01-10 21:41:35 UTC (rev 14138)
@@ -255,10 +255,11 @@
uint16_t namelen = strlen((char*)pkt->data+12)+1;
- struct map_entry* value = GNUNET_malloc(sizeof(struct
GNUNET_vpn_service_descriptor) + 2 + 8 + namelen);
+ struct map_entry* value = GNUNET_malloc(sizeof(struct map_entry) +
namelen);
+ char* name = (char*)(value +1);
value->namelen = namelen;
- memcpy(value->name, pkt->data+12, namelen);
+ memcpy(name, pkt->data+12, namelen);
memcpy(&value->desc, &pkt->service_descr, sizeof(struct
GNUNET_vpn_service_descriptor));
@@ -318,13 +319,14 @@
}
unsigned short namelen = htons(map_entry->namelen);
- char* name = map_entry->name;
+ char* name = (char*)(map_entry + 1);
list = GNUNET_malloc(2*sizeof(struct answer_packet_list*) + offset + 2
+ ntohs(namelen));
struct answer_packet* rpkt = &list->pkt;
- memcpy(rpkt, pkt, offset);
+ /* The offset points to the first byte belonging to the address */
+ memcpy(rpkt, pkt, offset - 1);
rpkt->subtype = GNUNET_DNS_ANSWER_TYPE_IP;
rpkt->hdr.size = ntohs(offset + 2 + ntohs(namelen));
Modified: gnunet/src/vpn/gnunet-daemon-vpn.h
===================================================================
--- gnunet/src/vpn/gnunet-daemon-vpn.h 2011-01-10 21:41:33 UTC (rev 14137)
+++ gnunet/src/vpn/gnunet-daemon-vpn.h 2011-01-10 21:41:35 UTC (rev 14138)
@@ -77,9 +77,8 @@
uint16_t namelen;
uint64_t additional_ports;
/**
- * In DNS-Format!
+ * After this struct the name is located in DNS-Format!
*/
- char name[1];
};
#endif /* end of include guard: GNUNET-DAEMON-VPN_H */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r14138 - gnunet/src/vpn,
gnunet <=