Skip to content

Commit

Permalink
Fix several warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
jhendersonHDF committed Jun 7, 2021
1 parent 4b7f34a commit 7f0b61d
Show file tree
Hide file tree
Showing 43 changed files with 376 additions and 176 deletions.
61 changes: 44 additions & 17 deletions hl/src/H5LT.c
Original file line number Diff line number Diff line change
Expand Up @@ -2146,19 +2146,28 @@ realloc_and_append(hbool_t _no_user_buf, size_t *len, char *buf, const char *str
size_t size_str_to_add, size_str;

if (_no_user_buf) {
char *tmp_realloc;

if (!buf)
goto out;

/* If the buffer isn't big enough, reallocate it. Otherwise, go to do strcat. */
if (str_to_add && ((ssize_t)(*len - (HDstrlen(buf) + HDstrlen(str_to_add) + 1)) < LIMIT)) {
*len += ((HDstrlen(buf) + HDstrlen(str_to_add) + 1) / INCREMENT + 1) * INCREMENT;
buf = (char *)HDrealloc(buf, *len);
}
else if (!str_to_add && ((ssize_t)(*len - HDstrlen(buf) - 1) < LIMIT)) {
*len += INCREMENT;
buf = (char *)HDrealloc(buf, *len);
}
}

if (!buf)
goto out;
tmp_realloc = (char *)HDrealloc(buf, *len);
if (tmp_realloc == NULL) {
HDfree(buf);
buf = NULL;
goto out;
}
else
buf = tmp_realloc;
}

if (str_to_add) {
/* find the size of the buffer to add */
Expand All @@ -2171,7 +2180,7 @@ realloc_and_append(hbool_t _no_user_buf, size_t *len, char *buf, const char *str
*/
if (size_str < *len - 1) {
if (size_str + size_str_to_add < *len - 1) {
HDstrncat(buf, str_to_add, size_str_to_add);
HDstrcat(buf, str_to_add);
}
else {
HDstrncat(buf, str_to_add, (*len - 1) - size_str);
Expand Down Expand Up @@ -2374,9 +2383,9 @@ print_enum(hid_t type, char *str, size_t *str_len, hbool_t no_ubuf, size_t indt)
herr_t
H5LTdtype_to_text(hid_t dtype, char *str, H5LT_lang_t lang_type, size_t *len)
{
size_t str_len = INCREMENT;
char * text_str;
herr_t ret = SUCCEED;
size_t str_len = INCREMENT;
char * text_str = NULL;
herr_t ret = SUCCEED;

if (lang_type <= H5LT_LANG_ERR || lang_type >= H5LT_NO_LANG)
goto out;
Expand All @@ -2400,6 +2409,8 @@ H5LTdtype_to_text(hid_t dtype, char *str, H5LT_lang_t lang_type, size_t *len)
return ret;

out:
HDfree(text_str);

return FAIL;
}

Expand Down Expand Up @@ -2779,10 +2790,14 @@ H5LT_dtype_to_text(hid_t dtype, char *dt_str, H5LT_lang_t lang, size_t *slen, hb
if (H5LTdtype_to_text(super, NULL, lang, &super_len) < 0)
goto out;
stmp = (char *)HDcalloc(super_len, sizeof(char));
if (H5LTdtype_to_text(super, stmp, lang, &super_len) < 0)
if (H5LTdtype_to_text(super, stmp, lang, &super_len) < 0) {
HDfree(stmp);
goto out;
if (!(dt_str = realloc_and_append(no_user_buf, slen, dt_str, stmp)))
}
if (!(dt_str = realloc_and_append(no_user_buf, slen, dt_str, stmp))) {
HDfree(stmp);
goto out;
}

if (stmp)
HDfree(stmp);
Expand Down Expand Up @@ -2822,10 +2837,14 @@ H5LT_dtype_to_text(hid_t dtype, char *dt_str, H5LT_lang_t lang, size_t *slen, hb
if (H5LTdtype_to_text(super, NULL, lang, &super_len) < 0)
goto out;
stmp = (char *)HDcalloc(super_len, sizeof(char));
if (H5LTdtype_to_text(super, stmp, lang, &super_len) < 0)
if (H5LTdtype_to_text(super, stmp, lang, &super_len) < 0) {
HDfree(stmp);
goto out;
if (!(dt_str = realloc_and_append(no_user_buf, slen, dt_str, stmp)))
}
if (!(dt_str = realloc_and_append(no_user_buf, slen, dt_str, stmp))) {
HDfree(stmp);
goto out;
}

if (stmp)
HDfree(stmp);
Expand Down Expand Up @@ -2879,10 +2898,14 @@ H5LT_dtype_to_text(hid_t dtype, char *dt_str, H5LT_lang_t lang, size_t *slen, hb
if (H5LTdtype_to_text(super, NULL, lang, &super_len) < 0)
goto out;
stmp = (char *)HDcalloc(super_len, sizeof(char));
if (H5LTdtype_to_text(super, stmp, lang, &super_len) < 0)
if (H5LTdtype_to_text(super, stmp, lang, &super_len) < 0) {
HDfree(stmp);
goto out;
if (!(dt_str = realloc_and_append(no_user_buf, slen, dt_str, stmp)))
}
if (!(dt_str = realloc_and_append(no_user_buf, slen, dt_str, stmp))) {
HDfree(stmp);
goto out;
}
if (stmp)
HDfree(stmp);
stmp = NULL;
Expand Down Expand Up @@ -2933,10 +2956,14 @@ H5LT_dtype_to_text(hid_t dtype, char *dt_str, H5LT_lang_t lang, size_t *slen, hb
if (H5LTdtype_to_text(mtype, NULL, lang, &mlen) < 0)
goto out;
mtmp = (char *)HDcalloc(mlen, sizeof(char));
if (H5LTdtype_to_text(mtype, mtmp, lang, &mlen) < 0)
if (H5LTdtype_to_text(mtype, mtmp, lang, &mlen) < 0) {
HDfree(mtmp);
goto out;
if (!(dt_str = realloc_and_append(no_user_buf, slen, dt_str, mtmp)))
}
if (!(dt_str = realloc_and_append(no_user_buf, slen, dt_str, mtmp))) {
HDfree(mtmp);
goto out;
}
if (mtmp)
HDfree(mtmp);
mtmp = NULL;
Expand Down
33 changes: 19 additions & 14 deletions hl/test/test_ds.c
Original file line number Diff line number Diff line change
Expand Up @@ -406,10 +406,10 @@ create_int_dataset(hid_t fid, const char *dsidx, int fulldims)
herr_t
create_long_dataset(hid_t fid, const char *dsname, const char *dsidx, int fulldims)
{
int rank = 4;
int rankds = 1;
hsize_t dims[4] = {DIM1_SIZE, DIM2_SIZE, DIM3_SIZE, DIM4_SIZE};
long * buf;
int rank = 4;
int rankds = 1;
hsize_t dims[4] = {DIM1_SIZE, DIM2_SIZE, DIM3_SIZE, DIM4_SIZE};
long * buf = NULL;
hsize_t s1_dim[1] = {DIM1_SIZE};
hsize_t s2_dim[1] = {DIM2_SIZE};
hsize_t s3_dim[1] = {DIM3_SIZE};
Expand All @@ -431,49 +431,54 @@ create_long_dataset(hid_t fid, const char *dsname, const char *dsidx, int fulldi

/* Allocate buffer */
if (NULL == (buf = (long *)HDmalloc(sizeof(long) * DIM1_SIZE * DIM2_SIZE * DIM3_SIZE * DIM4_SIZE)))
return FAIL;
goto error;

/* make a dataset */
if (H5LTmake_dataset_long(fid, dsname, rank, dims, buf) >= 0) {
if (fulldims == 0) {
/* make a DS dataset for the first dimension */
if (create_DS1_long_datasets(fid, dsidx, rankds, s1_dim, s1_wbuf, NULL) < 0)
return FAIL;
goto error;

/* make a DS dataset for the second dimension */
if (create_DS2_long_datasets(fid, dsidx, rankds, s2_dim, s2_wbuf, NULL, NULL) < 0)
return FAIL;
goto error;

/* make a DS dataset for the third dimension */
if (create_DS3_long_datasets(fid, dsidx, rankds, s3_dim, s3_wbuf, NULL, NULL, NULL) < 0)
return FAIL;
goto error;

/* make a DS dataset for the fourth dimension */
if (create_DS4_long_datasets(fid, dsidx, rankds, s4_dim, s4_wbuf, NULL, NULL, NULL, NULL) < 0)
return FAIL;
goto error;
}
else {
if (create_DS1_long_datasets(fid, dsidx, rankds, s1_dim, s1_wbuf, s11_wbuf) < 0)
return FAIL;
goto error;

if (create_DS2_long_datasets(fid, dsidx, rankds, s2_dim, s2_wbuf, s21_wbuf, s22_wbuf) < 0)
return FAIL;
goto error;

if (create_DS3_long_datasets(fid, dsidx, rankds, s3_dim, s3_wbuf, s31_wbuf, s32_wbuf, s33_wbuf) <
0)
return FAIL;
goto error;

if (create_DS4_long_datasets(fid, dsidx, rankds, s4_dim, s4_wbuf, s41_wbuf, s42_wbuf, s43_wbuf,
s44_wbuf) < 0)
return FAIL;
goto error;
}
}
else
return FAIL;
goto error;

HDfree(buf);

return SUCCEED;

error:
HDfree(buf);

return FAIL;
}

herr_t
Expand Down
30 changes: 23 additions & 7 deletions hl/test/test_file_image.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@
static int
test_file_image(size_t open_images, size_t nflags, const unsigned *flags)
{
hid_t * file_id, *dset_id, file_space, plist; /* HDF5 ids */
hsize_t dims1[RANK] = {2, 3}; /* original dimension of datasets */
hid_t * file_id = NULL, *dset_id = NULL, file_space, plist; /* HDF5 ids */
hsize_t dims1[RANK] = {2, 3}; /* original dimension of datasets */
hsize_t max_dims[RANK] = {H5S_UNLIMITED, H5S_UNLIMITED};
int data1[6] = {1, 2, 3, 4, 5, 6}; /* original contents of dataset */
int data2[6] = {7, 8, 9, 10, 11, 12}; /* "wrong" contents of dataset */
Expand All @@ -63,10 +63,10 @@ test_file_image(size_t open_images, size_t nflags, const unsigned *flags)
hsize_t dims4[RANK] = {3, 5}; /* extended dimensions of datasets */
int data4[15] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
/* extended contents of dataset */
ssize_t * buf_size; /* pointer to array of buffer sizes */
void ** buf_ptr; /* pointer to array of pointers to image buffers */
char ** filename; /* pointer to array of pointers to filenames */
unsigned * input_flags; /* pointer to array of flag combinations */
ssize_t * buf_size = NULL; /* pointer to array of buffer sizes */
void ** buf_ptr = NULL; /* pointer to array of pointers to image buffers */
char ** filename = NULL; /* pointer to array of pointers to filenames */
unsigned * input_flags = NULL; /* pointer to array of flag combinations */
size_t i, j, k, nrow, n_values;
herr_t status1;
void * handle_ptr = NULL; /* pointers to driver buffer */
Expand All @@ -85,7 +85,7 @@ test_file_image(size_t open_images, size_t nflags, const unsigned *flags)
FAIL_PUTS_ERROR("malloc() failed");

/* allocate array to store the name of each of the open images */
if (NULL == (filename = (char **)HDmalloc(sizeof(char *) * open_images)))
if (NULL == (filename = (char **)HDcalloc(1, sizeof(char *) * open_images)))
FAIL_PUTS_ERROR("malloc() failed");

/* allocate array to store the size of each of the open images */
Expand All @@ -110,6 +110,8 @@ test_file_image(size_t open_images, size_t nflags, const unsigned *flags)

/* allocate name buffer for image i */
filename[i] = (char *)HDmalloc(sizeof(char) * 32);
if (!filename[i])
FAIL_PUTS_ERROR("HDmalloc() failed");

/* create file name */
HDsprintf(filename[i], "image_file%d.h5", (int)i);
Expand Down Expand Up @@ -232,6 +234,9 @@ test_file_image(size_t open_images, size_t nflags, const unsigned *flags)
if (input_flags[i] & H5LT_FILE_IMAGE_OPEN_RW && !(input_flags[i] & H5LT_FILE_IMAGE_DONT_COPY)) {

void *tmp_ptr = HDmalloc((size_t)buf_size[i]);
if (!tmp_ptr)
FAIL_PUTS_ERROR("buffer allocation failed");

/* Copy vfd buffer to a temporary buffer */
HDmemcpy(tmp_ptr, (void *)*core_buf_ptr_ptr, (size_t)buf_size[i]);
/* Clear status_flags in the superblock for the vfd buffer: file locking is using status_flags
Expand Down Expand Up @@ -525,6 +530,17 @@ test_file_image(size_t open_images, size_t nflags, const unsigned *flags)
return 0;

error:
if (filename) {
for (i = 0; i < open_images; i++)
HDfree(filename[i]);
HDfree(filename);
}
HDfree(file_id);
HDfree(dset_id);
HDfree(buf_ptr);
HDfree(buf_size);
HDfree(input_flags);

H5_FAILED();
return -1;
}
Expand Down
19 changes: 3 additions & 16 deletions java/src/jni/h5util.c
Original file line number Diff line number Diff line change
Expand Up @@ -870,11 +870,8 @@ h5str_sprintf(JNIEnv *env, h5str_t *out_str, hid_t container, hid_t tid, void *i
}
else {
if (typeSize > 0) {
if (NULL == (this_str = (char *)HDmalloc(typeSize + 1)))
if (NULL == (this_str = HDstrdup(tmp_str)))
H5_OUT_OF_MEMORY_ERROR(ENVONLY, "h5str_sprintf: failed to allocate string buffer");

HDstrncpy(this_str, tmp_str, typeSize);
this_str[typeSize] = '\0';
}
}

Expand Down Expand Up @@ -3664,19 +3661,14 @@ obj_info_all(hid_t loc_id, const char *name, const H5L_info2_t *info, void *op_d
info_all_t *datainfo = (info_all_t *)op_data;
H5O_info2_t object_info;
htri_t object_exists;
size_t str_len;

datainfo->otype[datainfo->count] = -1;
datainfo->ltype[datainfo->count] = -1;
datainfo->obj_token[datainfo->count] = H5O_TOKEN_UNDEF;

str_len = HDstrlen(name);
if (NULL == (datainfo->objname[datainfo->count] = (char *)HDmalloc(str_len + 1)))
if (NULL == (datainfo->objname[datainfo->count] = HDstrdup(name)))
goto done;

HDstrncpy(datainfo->objname[datainfo->count], name, str_len);
(datainfo->objname[datainfo->count])[str_len] = '\0';

if ((object_exists = H5Oexists_by_name(loc_id, name, H5P_DEFAULT)) < 0)
goto done;

Expand All @@ -3702,21 +3694,16 @@ obj_info_max(hid_t loc_id, const char *name, const H5L_info2_t *info, void *op_d
{
info_all_t *datainfo = (info_all_t *)op_data;
H5O_info2_t object_info;
size_t str_len;

datainfo->otype[datainfo->count] = -1;
datainfo->ltype[datainfo->count] = -1;
datainfo->objname[datainfo->count] = NULL;
datainfo->obj_token[datainfo->count] = H5O_TOKEN_UNDEF;

/* This will be freed by h5str_array_free(oName, n) */
str_len = HDstrlen(name);
if (NULL == (datainfo->objname[datainfo->count] = (char *)HDmalloc(str_len + 1)))
if (NULL == (datainfo->objname[datainfo->count] = HDstrdup(name)))
goto done;

HDstrncpy(datainfo->objname[datainfo->count], name, str_len);
(datainfo->objname[datainfo->count])[str_len] = '\0';

if (H5Oget_info3(loc_id, &object_info, H5O_INFO_ALL) < 0)
goto done;

Expand Down
9 changes: 3 additions & 6 deletions src/H5.c
Original file line number Diff line number Diff line change
Expand Up @@ -960,12 +960,9 @@ H5check_version(unsigned majnum, unsigned minnum, unsigned relnum)
* Check only the first sizeof(lib_str) char. Assume the information
* will fit within this size or enough significance.
*/
HDsnprintf(lib_str, sizeof(lib_str), "HDF5 library version: %d.%d.%d", H5_VERS_MAJOR, H5_VERS_MINOR,
H5_VERS_RELEASE);
if (*substr) {
HDstrncat(lib_str, "-", (size_t)1);
HDstrncat(lib_str, substr, (sizeof(lib_str) - HDstrlen(lib_str)) - 1);
} /* end if */
HDsnprintf(lib_str, sizeof(lib_str), "HDF5 library version: %d.%d.%d%s%s", H5_VERS_MAJOR,
H5_VERS_MINOR, H5_VERS_RELEASE, (*substr ? "-" : ""), substr);

if (HDstrcmp(lib_str, H5_lib_vers_info_g) != 0) {
HDfputs("Warning! Library version information error.\n"
"The HDF5 library version information are not "
Expand Down
Loading

0 comments on commit 7f0b61d

Please sign in to comment.