summaryrefslogtreecommitdiffstats
path: root/perform
diff options
context:
space:
mode:
authorAlbert Cheng <acheng@hdfgroup.org>2008-12-09 04:08:24 (GMT)
committerAlbert Cheng <acheng@hdfgroup.org>2008-12-09 04:08:24 (GMT)
commit0ac6d940c336a033f59c1dad87d99b6868931bea (patch)
treef154092bed6553fea9241556c68c4175fe9d3342 /perform
parent064fee6e8ecf49c619d1bf25c665cd543fb10295 (diff)
downloadhdf5-0ac6d940c336a033f59c1dad87d99b6868931bea.zip
hdf5-0ac6d940c336a033f59c1dad87d99b6868931bea.tar.gz
hdf5-0ac6d940c336a033f59c1dad87d99b6868931bea.tar.bz2
[svn-r16170] Code clean up.
Function get_unique_name() had potential string overflow problem. Fixed. Also removed some unused macros. Tested by h5committest.
Diffstat (limited to 'perform')
-rw-r--r--perform/zip_perf.c25
1 files changed, 12 insertions, 13 deletions
diff --git a/perform/zip_perf.c b/perform/zip_perf.c
index d7b75c7..d1d36b4 100644
--- a/perform/zip_perf.c
+++ b/perform/zip_perf.c
@@ -69,8 +69,6 @@
# define GZ_SUFFIX ".gz"
#endif /* GZ_SUFFIX */
-#define SUFFIX_LEN (sizeof(GZ_SUFFIX) - 1)
-
#define ONE_KB 1024
#define ONE_MB (ONE_KB * ONE_KB)
#define ONE_GB (ONE_MB * ONE_KB)
@@ -88,8 +86,6 @@
#define FALSE (!TRUE)
#endif /* FALSE */
-#define BUFLEN (16 * ONE_KB)
-#define MAX_NAME_LEN ONE_KB
/* internal variables */
static const char *prog;
@@ -321,25 +317,28 @@ uncompress_buffer(Bytef *dest, uLongf *destLen, const Bytef *source,
static void
get_unique_name(void)
{
- const char *prefix = "", *tmpl = "zip_perf.data";
+ const char *prefix = NULL, *tmpl = "zip_perf.data";
const char *env = getenv("HDF5_PREFIX");
- if (env) {
+ if (env)
prefix = env;
- strcat(prefix, "/");
- }
- if (option_prefix) {
+ if (option_prefix)
prefix = option_prefix;
- strcat(prefix, "/");
- }
- filename = calloc(1, strlen(prefix) + strlen(tmpl) + 1);
+ if (prefix)
+ /* 2 = 1 for '/' + 1 for null terminator */
+ filename = (char *) HDmalloc(strlen(prefix) + strlen(tmpl) + 2);
+ else
+ filename = (char *) HDmalloc(strlen(tmpl) + 1);
if (!filename)
error("out of memory");
- strcpy(filename, prefix);
+ if (prefix){
+ strcpy(filename, prefix);
+ strcat(filename, "/");
+ }
strcat(filename, tmpl);
}