]> git.proxmox.com Git - mirror_frr.git/blobdiff - lib/csv.c
zebra, lib: fix the ZEBRA_INTERFACE_VRF_UPDATE zapi message
[mirror_frr.git] / lib / csv.c
index 45582e30922559ed5085fcb6d0ef2aa939adc95e..582106ebd429356cf98b6ff224c0f4e89dc6501a 100644 (file)
--- a/lib/csv.c
+++ b/lib/csv.c
  * with this program; see the file COPYING; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -284,8 +289,11 @@ csv_record_t *csv_encode_record(csv_t *csv, csv_record_t *rec, int count, ...)
 
        va_start(list, count);
        str = csv_field_iter(rec, &fld);
-       if (!fld)
+       if (!fld) {
+               va_end(list);
                return NULL;
+       }
+
        for (tempc = 0; tempc < count; tempc++) {
                col = va_arg(list, char *);
                for (i = 0; i < fld->field_len; i++) {
@@ -421,7 +429,7 @@ void csv_clone_record(csv_t *csv, csv_record_t *in_rec, csv_record_t **out_rec)
 
 void csv_remove_record(csv_t *csv, csv_record_t *rec)
 {
-       csv_field_t *fld, *p_fld;
+       csv_field_t *fld = NULL, *p_fld;
 
        /* first check if rec belongs to this csv */
        if (!csv_is_record_valid(csv, rec)) {
@@ -560,6 +568,8 @@ void csv_decode(csv_t *csv, char *inbuf)
        csv_record_t *rec;
 
        buf = (inbuf) ? inbuf : csv->buf;
+       assert(buf);
+
        pos = strpbrk(buf, "\n");
        while (pos != NULL) {
                rec = calloc(1, sizeof(csv_record_t));
@@ -654,18 +664,15 @@ int main()
 {
        char buf[10000];
        csv_t csv;
-       int p;
-       int i, j;
+       int i;
        csv_record_t *rec;
-       csv_field_t *fld;
-       char *str;
        char hdr1[32], hdr2[32];
 
-       log_verbose("Mem: %ld\n", get_memory_usage(getpid()));
+       log_verbose("Mem: %d\n", get_memory_usage(getpid()));
        csv_init(&csv, buf, 256);
-       sprintf(hdr1, "%4u", 0);
-       sprintf(hdr2, "%4u", 1);
-       log_verbose("(%d/%d/%d/%d)\n", strlen(hdr1), strlen(hdr2), atoi(hdr1),
+       sprintf(hdr1, "%4d", 0);
+       sprintf(hdr2, "%4d", 1);
+       log_verbose("(%zu/%zu/%d/%d)\n", strlen(hdr1), strlen(hdr2), atoi(hdr1),
                    atoi(hdr2));
        rec = csv_encode(&csv, 2, hdr1, hdr2);
        csv_encode(&csv, 4, "name", "age", "sex", "hei");
@@ -676,21 +683,21 @@ int main()
        }
        csv_encode(&csv, 2, "pdfadfadfadsadsaddfdfdsfdsd", "35444554545454545");
        log_verbose("%s\n", buf);
-       sprintf(hdr1, "%4u", csv.csv_len);
-       sprintf(hdr2, "%4u", 1);
-       log_verbose("(%d/%d/%d/%d)\n", strlen(hdr1), strlen(hdr2), atoi(hdr1),
+       sprintf(hdr1, "%4d", csv.csv_len);
+       sprintf(hdr2, "%4d", 1);
+       log_verbose("(%zu/%zu/%d/%d)\n", strlen(hdr1), strlen(hdr2), atoi(hdr1),
                    atoi(hdr2));
        rec = csv_encode_record(&csv, rec, 2, hdr1, hdr2);
        log_verbose("(%d/%d)\n%s\n", rec->rec_len, csv.csv_len, buf);
 
-       log_verbose("Mem: %ld\n", get_memory_usage(getpid()));
+       log_verbose("Mem: %d\n", get_memory_usage(getpid()));
        csv_clean(&csv);
-       log_verbose("Mem: %ld\n", get_memory_usage(getpid()));
+       log_verbose("Mem: %d\n", get_memory_usage(getpid()));
        csv_init(&csv, buf, 256);
        csv_decode(&csv, NULL);
-       log_verbose("AFTER DECODE\n");
+       log_verbose("%s", "AFTER DECODE\n");
        csv_dump(&csv);
        csv_clean(&csv);
-       log_verbose("Mem: %ld\n", get_memory_usage(getpid()));
+       log_verbose("Mem: %d\n", get_memory_usage(getpid()));
 }
 #endif