]> rtime.felk.cvut.cz Git - pes-rpp/rpp-lwip.git/commitdiff
Added missing casts, use strlen + MEMCPY instead of strcpy (as that might overrun...
authorgoldsimon <goldsimon>
Tue, 16 Mar 2010 15:14:14 +0000 (15:14 +0000)
committergoldsimon <goldsimon>
Tue, 16 Mar 2010 15:14:14 +0000 (15:14 +0000)
src/api/netdb.c
src/core/dns.c

index 13e38221260dafb2e63749e9c70ac8d177934973..fdc55be0610fef8aa24917b232f78965753c809d 100644 (file)
@@ -310,7 +310,7 @@ lwip_getaddrinfo(const char *nodename, const char *servname,
   /* If this fails, please report to lwip-devel! :-) */
   LWIP_ASSERT("total_size <= NETDB_ELEM_SIZE: please report this!",
     total_size <= NETDB_ELEM_SIZE);
-  ai = memp_malloc(MEMP_NETDB);
+  ai = (struct addrinfo *)memp_malloc(MEMP_NETDB);
   if (ai == NULL) {
     goto memerr;
   }
index 04b2c2f53eaba7bb6484eb95d7b13298f92ca934..06a1123a18ce19e1a47b7b4e7f5873d673b2fb16 100644 (file)
@@ -240,7 +240,7 @@ dns_init()
 {
   ip_addr_t dnsserver;
 
-  dns_payload = LWIP_MEM_ALIGN(dns_payload_buffer);
+  dns_payload = (u8_t *)LWIP_MEM_ALIGN(dns_payload_buffer);
   
   /* initialize default DNS server address */
   DNS_SERVER_ADDRESS(&dnsserver);
@@ -858,6 +858,7 @@ dns_enqueue(const char *name, dns_found_callback found, void *callback_arg)
   u8_t i;
   u8_t lseq, lseqi;
   struct dns_table_entry *pEntry = NULL;
+  size_t namelen;
 
   /* search an unused entry, or the oldest one */
   lseq = lseqi = 0;
@@ -897,7 +898,9 @@ dns_enqueue(const char *name, dns_found_callback found, void *callback_arg)
   pEntry->seqno = dns_seqno++;
   pEntry->found = found;
   pEntry->arg   = callback_arg;
-  strcpy(pEntry->name, name);
+  namelen = LWIP_MIN(strlen(name), DNS_MAX_NAME_LENGTH-1);
+  MEMCPY(pEntry->name, name, namelen);
+  pEntry->name[namelen] = 0;
 
   /* force to send query without waiting timer */
   dns_check_entry(i);