smp_utils/6000-Add-files-via-upload.patch

81 lines
2.8 KiB
Diff
Raw Normal View History

2019-09-30 11:17:15 -04:00
From 8e7ca311f55fe2074e5b02a17249c5a707edeb3c Mon Sep 17 00:00:00 2001
From: doug-gilbert <32302704+doug-gilbert@users.noreply.github.com>
Date: Wed, 28 Feb 2018 11:49:45 -0500
Subject: [PATCH 12/13] Add files via upload
smp_conf_phy_event: fix file pointer leak;
---
diff --git a/src/smp_conf_phy_event.c b/src/smp_conf_phy_event.c
index b2ad100..70ce4f5 100644
--- a/src/smp_conf_phy_event.c
+++ b/src/smp_conf_phy_event.c
@@ -336,6 +336,7 @@ build_joint_arr(const char * file_name, unsigned char * pes_arr,
char line[512];
int off = 0;
int in_len, k, j, m, have_stdin, ind, bit0, err;
+ int ret = 0;
char * lcp;
FILE * fp;
unsigned int unum;
@@ -376,7 +377,8 @@ build_joint_arr(const char * file_name, unsigned char * pes_arr,
if ((k < in_len) && ('#' != lcp[k])) {
fprintf(stderr, "build_joint_arr: syntax error at "
"line %d, pos %d\n", j + 1, m + k + 1);
- return 1;
+ ret = 1;
+ goto fini;
}
for (k = 0; k < 1024; ++k) {
unum = get_unum(lcp, &err);
@@ -386,7 +388,8 @@ build_joint_arr(const char * file_name, unsigned char * pes_arr,
if (ind >= max_arr_len) {
fprintf(stderr, "build_joint_arr: array length "
"exceeded\n");
- return 1;
+ ret = 1;
+ goto fini;
}
if (bit0)
thres_arr[ind] = unum;
@@ -394,7 +397,8 @@ build_joint_arr(const char * file_name, unsigned char * pes_arr,
if (unum > 255) {
fprintf(stderr, "build_joint_arr: pes (%u) too "
"large\n", unum);
- return 1;
+ ret = 1;
+ goto fini;
}
pes_arr[ind] = (unsigned char)unum;
}
@@ -412,7 +416,8 @@ build_joint_arr(const char * file_name, unsigned char * pes_arr,
fprintf(stderr, "build_joint_arr: error in "
"line %d, at pos %d\n", j + 1,
(int)(lcp - line + 1));
- return 1;
+ ret = 1;
+ goto fini;
}
}
off += (k + 1);
@@ -420,10 +425,14 @@ build_joint_arr(const char * file_name, unsigned char * pes_arr,
if (0x1 & off) {
fprintf(stderr, "build_joint_arr: expect LBA,NUM pairs but decoded "
"odd number\n from %s\n", have_stdin ? "stdin" : file_name);
- return 1;
+ ret = 1;
+ goto fini;
}
*arr_len = off >> 1;
- return 0;
+fini:
+ if (! have_stdin)
+ fclose(fp);
+ return ret;
}
static void
--
2.19.1