sprintf removal
authorsahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7>
Sat, 27 Aug 2005 00:25:32 +0000 (00:25 +0000)
committersahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7>
Sat, 27 Aug 2005 00:25:32 +0000 (00:25 +0000)
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@15550 f5534014-38df-0310-8fa8-9805f1628bb7

epan/dissectors/packet-dcm.c
epan/dissectors/packet-fw1.c

index a7966b2d412619975534ce7477bf72fd35c0d166..e2719cc593cba7b60b47ed1794544c4f67a69d09 100644 (file)
@@ -503,7 +503,7 @@ dcm_setSyntax(dcmItem_t *di, char *name)
 static char *
 dcm_tag2str(guint16 grp, guint16 elm, guint8 syntax, tvbuff_t *tvb, int offset, guint32 len, int vr, int tr)
 {
-    static char buf[512+1];    /* bad form ??? */
+    char *buf;
     const guint8 *vval;
     size_t vval_len;
     char *p;
@@ -513,21 +513,23 @@ dcm_tag2str(guint16 grp, guint16 elm, guint8 syntax, tvbuff_t *tvb, int offset,
     size_t pl;
     static dcmTag_t utag = { 0, 0, "(unknown)" };
 
+#define MAX_BUF_LEN 1024
+    buf=ep_alloc(MAX_BUF_LEN);
     *buf = 0;
     if (0 == elm) {
        if (DCM_ILE & syntax) 
             val32 = tvb_get_letohl(tvb, offset); 
        else val32 = tvb_get_ntohl(tvb, offset); 
-       g_snprintf(buf, sizeof(buf), "Group Length 0x%x (%d)", val32, val32);
+       g_snprintf(buf, MAX_BUF_LEN, "Group Length 0x%x (%d)", val32, val32);
        return buf;
     }
     tag = (grp << 16) | elm;
     if (NULL == (dtag = g_hash_table_lookup(dcm_tagTable, GUINT_TO_POINTER(tag))))
        dtag = &utag;
 
-    DISSECTOR_ASSERT(sizeof(buf) > strlen(dtag->desc));
+    DISSECTOR_ASSERT(MAX_BUF_LEN > strlen(dtag->desc));
     strcpy(buf, dtag->desc);
-    pl = sizeof(buf) - strlen(buf);
+    pl = MAX_BUF_LEN - strlen(buf);
     p = buf + strlen(buf);
     if (vr > 0) {
        vval = tvb_format_text(tvb, vr, 2);
@@ -560,39 +562,39 @@ dcm_tag2str(guint16 grp, guint16 elm, guint8 syntax, tvbuff_t *tvb, int offset,
        if (DCM_ILE & syntax) 
             val16 = tvb_get_letohs(tvb, offset);
        else val16 = tvb_get_ntohs(tvb, offset);
-       sprintf(p, " 0x%x (%d)", val16, val16);
+       g_snprintf(p, MAX_BUF_LEN-(p-buf), " 0x%x (%d)", val16, val16);
        break;
     case DCM_TINT4:
        if (DCM_ILE & syntax) 
             val32 = tvb_get_letohl(tvb, offset); 
        else val32 = tvb_get_ntohl(tvb, offset); 
-       sprintf(p, " 0x%x (%d)", val32, val32);
+       g_snprintf(p, MAX_BUF_LEN-(p-buf), " 0x%x (%d)", val32, val32);
        break;
     case DCM_TFLT: {
        gfloat valf;
        if (DCM_ILE & syntax) 
             valf = tvb_get_letohieee_float(tvb, offset); 
        else valf = tvb_get_ntohieee_float(tvb, offset); 
-       sprintf(p, " (%f)", valf);
+       g_snprintf(p, MAX_BUF_LEN-(p-buf), " (%f)", valf);
        } break;
     case DCM_TDBL: {
        gdouble vald;
        if (DCM_ILE & syntax) 
             vald = tvb_get_letohieee_double(tvb, offset); 
        else vald = tvb_get_ntohieee_double(tvb, offset); 
-       sprintf(p, " (%f)", vald);
+       g_snprintf(p, MAX_BUF_LEN-(p-buf), " (%f)", vald);
        } break;
     case DCM_TSTAT: /* call dcm_rsp2str() on TINT2 */
        if (DCM_ILE & syntax) 
             val16 = tvb_get_letohs(tvb, offset);
        else val16 = tvb_get_ntohs(tvb, offset);
-       sprintf(p, " 0x%x '%s'", val16, dcm_rsp2str(val16));
+       g_snprintf(p, MAX_BUF_LEN-(p-buf), " 0x%x '%s'", val16, dcm_rsp2str(val16));
        break;
     case DCM_TCMD:   /* call dcm_cmd2str() on TINT2 */
        if (DCM_ILE & syntax) 
             val16 = tvb_get_letohs(tvb, offset);
        else val16 = tvb_get_ntohs(tvb, offset);
-       sprintf(p, " 0x%x '%s'", val16, dcm_cmd2str(val16));
+       g_snprintf(p, MAX_BUF_LEN-(p-buf), " 0x%x '%s'", val16, dcm_cmd2str(val16));
        break;
     case DCM_SQ:       /* Sequence */
     case DCM_OTH:      /* Other BYTE, WORD, ... */
index b2af5eb2d6c04c1f3b9a1a3e8e35ecb8c92e8919..43f4bfe56eb04810c7a3df4747a7e947a3290f96 100644 (file)
@@ -91,6 +91,7 @@
 #include <glib.h>
 #include <epan/packet.h>
 #include <epan/prefs.h>
+#include <epan/emem.h>
 #include "etypes.h"
 
 /* Place FW1 summary in proto tree */
@@ -135,15 +136,19 @@ dissect_fw1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
   proto_tree    *volatile fh_tree = NULL;
   char         direction;
   char chain;
-  char         interface_name[10+1];
+  char         *interface_name;
   guint32      iface_len = 10;
   guint16      etype;
-  char         header[1000] = "FW1 Monitor";
+  char         *header; 
   char         *p_header;
   int          i;
   gboolean     found;
   static const char    fw1_header[] = "FW1 Monitor";
 
+#define MAX_HEADER_LEN 1000
+  header=ep_alloc(MAX_HEADER_LEN);
+  g_snprintf(header, MAX_HEADER_LEN, "FW1 Monitor");
+
   /* Make entries in Protocol column and Info column on summary display */
   if (check_col(pinfo->cinfo, COL_PROTOCOL))
     col_set_str(pinfo->cinfo, COL_PROTOCOL, "FW1");
@@ -163,6 +168,8 @@ dissect_fw1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
   if (fw1_with_uuid)
        iface_len = 6;
+  
+  interface_name=ep_alloc(iface_len+1);
   tvb_get_nstringz0(tvb, 2, iface_len, interface_name);
 
   /* Known interface name - if not, remember it */
@@ -182,7 +189,7 @@ dissect_fw1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
   for (i=0; i<interface_anzahl; i++) {
     p_header = header + strlen(header);
     if ( strcmp(p_interfaces[i], interface_name) == 0 ) {
-               sprintf(p_header, "  %c%c %s %c%c",
+               g_snprintf(p_header, MAX_HEADER_LEN-(p_header-header), "  %c%c %s %c%c",
                        direction == 'i' ? 'i' : (direction == 'O' ? 'O' : ' '),
                        (direction == 'i' || direction == 'O') ? chain : ' ',
                        p_interfaces[i],
@@ -190,7 +197,7 @@ dissect_fw1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                        (direction == 'I' || direction == 'o') ? chain : ' '
                );
     } else {
-       sprintf(p_header, "    %s  ", p_interfaces[i]);
+       g_snprintf(p_header, MAX_HEADER_LEN-(p_header-header), "    %s  ", p_interfaces[i]);
     }
   }