Avoid calling some free() on WIN32 on memory that may be allocated in
[obnox/wireshark/wip.git] / tap-iostat.c
index 159ca6ed9084b3e9c506f12aefdf39e4434d716c..456b5cdf5b119e92f341655645bed9c181c90164 100644 (file)
@@ -37,6 +37,7 @@
 #include "epan/packet_info.h"
 #include <epan/tap.h>
 #include <epan/stat_cmd_args.h>
+#include <epan/strutil.h>
 #include "register.h"
 
 
@@ -504,7 +505,7 @@ register_io_tap(io_stat_t *io, int i, const char *filter)
                                    calc_type_table[j].func_name);
                                exit(10);
                        }
-                       field=malloc(parenp-p+1);
+                       field=g_malloc(parenp-p+1);
                        if(!field){
                                fprintf(stderr, "tshark: Out of memory.\n");
                                exit(10);
@@ -517,7 +518,7 @@ register_io_tap(io_stat_t *io, int i, const char *filter)
                        if(!hfi){
                                fprintf(stderr, "tshark: There is no field named '%s'.\n",
                                    field);
-                               free(field);
+                               g_free(field);
                                exit(10);
                        }
        
@@ -583,7 +584,7 @@ register_io_tap(io_stat_t *io, int i, const char *filter)
                        }
                        break;
                }
-               free(field);
+               g_free(field);
        }
 
 /*
@@ -663,13 +664,11 @@ iostat_init(const char *optarg, void* userdata _U_)
                        if(pos==str){
                                register_io_tap(io, i, NULL);
                        } else if(pos==NULL) {
-                               tmp=g_malloc(strlen(str)+1);
-                               strcpy(tmp,str);
+                               tmp=g_strdup(str);
                                register_io_tap(io, i, tmp);
                        } else {
                                tmp=g_malloc((pos-str)+1);
-                               strncpy(tmp,str,(pos-str));
-                               tmp[pos-str]=0;
+                               g_strlcpy(tmp,str,(pos-str)+1);
                                register_io_tap(io, i, tmp);
                        }
                        str=pos+1;