diff --git a/sim_ether.c b/sim_ether.c index 454be442..2de2564f 100644 --- a/sim_ether.c +++ b/sim_ether.c @@ -560,7 +560,7 @@ char* eth_getname(int number, char* name) ETH_LIST list[ETH_MAX_DEVICE]; int count = eth_devices(ETH_MAX_DEVICE, list); - if (count <= number) return 0; + if (count <= number) return NULL; strcpy(name, list[number].name); return name; } @@ -587,7 +587,7 @@ char* eth_getname_bydesc(char* desc, char* name) return name; } /* not found */ - return 0; + return NULL; } /* strncasecmp() is not available on all platforms */ @@ -621,16 +621,13 @@ char* eth_getname_byname(char* name, char* temp) found = 0; n = strlen(name); for (i=0; i min) min = len; for (i=0; inext) { + for (i=0, dev=alldevs; dev && (i < max); dev=dev->next, ++i) { if ((dev->flags & PCAP_IF_LOOPBACK) || (!strcmp("any", dev->name))) continue; - list[i].num = i; - sprintf(list[i].name, "%s", dev->name); + strncpy(list[i].name, dev->name, sizeof(list[i].name)-1); if (dev->description) - sprintf(list[i].desc, "%s", dev->description); + strncpy(list[i].desc, dev->description, sizeof(list[i].desc)-1); else - sprintf(list[i].desc, "%s", "No description available"); - if (i++ >= max) break; + strncpy(list[i].desc, "No description available", sizeof(list[i].desc)-1); } /* free device list */ diff --git a/sim_ether.h b/sim_ether.h index 2314e835..8200116e 100644 --- a/sim_ether.h +++ b/sim_ether.h @@ -130,7 +130,7 @@ #define ETH_MIN_PACKET 60 /* minimum ethernet packet size */ #define ETH_MAX_PACKET 1514 /* maximum ethernet packet size */ #define ETH_MAX_JUMBO_FRAME 65536 /* maximum ethernet jumbo frame size (or Offload Segment Size) */ -#define ETH_MAX_DEVICE 10 /* maximum ethernet devices */ +#define ETH_MAX_DEVICE 20 /* maximum ethernet devices */ #define ETH_CRC_SIZE 4 /* ethernet CRC size */ #define ETH_FRAME_SIZE (ETH_MAX_PACKET+ETH_CRC_SIZE) /* ethernet maximum frame size */ #define ETH_MIN_JUMBO_FRAME ETH_MAX_PACKET /* Threshold size for Jumbo Frame Processing */ @@ -168,7 +168,6 @@ struct eth_queue { }; struct eth_list { - int num; char name[ETH_DEV_NAME_MAX]; char desc[ETH_DEV_DESC_MAX]; };