diff --git a/lib/dsmlist.c b/lib/dsmlist.c index ea16f5b..cd4eba1 100644 --- a/lib/dsmlist.c +++ b/lib/dsmlist.c @@ -18,16 +18,17 @@ char *units(double size) { int div = 0; double rem = 0; int base = 1024; + int s_size = 128; char *s; s = "\0"; - s = malloc(128); + s = malloc(s_size); if (s==NULL) { perror("Arg, out of memory?"); exit(255); } - memset(s,0x00,(sizeof s)); + memset(s,0x00,s_size); while (size >= base && div < (int)(sizeof SIZES / sizeof *SIZES)-1) { if (verbose > 2) diff --git a/lib/dsmobjects.c b/lib/dsmobjects.c index 40c8c43..7248a14 100644 --- a/lib/dsmobjects.c +++ b/lib/dsmobjects.c @@ -72,14 +72,16 @@ dsmDate dsmStrToDate(char *s) { char *dsmDateToStr(dsmDate date) { char *s; - s = malloc(19); + int s_size = 32; + + s = malloc(s_size); if (s==NULL) { perror("Arg, out of memory?"); exit(255); } - memset(s,0x00,(sizeof s)); + memset(s,0x00,s_size); sprintf(s,"%04i-%02i-%02i %02i:%02i:%02i", date.year, @@ -145,7 +147,7 @@ char *dsmObjnameToStr(dsmObjName objName) { exit(255); } - memset(s,0x00,(sizeof s)); + memset(s,0x00,sizeof(dsmObjName)); sprintf(s,"%s%s%s",objName.fs,objName.hl,objName.ll); diff --git a/lib/dsmsendrecv.c b/lib/dsmsendrecv.c index 45c6702..eeb80ac 100644 --- a/lib/dsmsendrecv.c +++ b/lib/dsmsendrecv.c @@ -133,10 +133,11 @@ double tsm_sendfile(dsUint32_t dsmHandle, char *fsname, char *filename, long lon #ifdef USE_DIGEST char digest_str[EVP_MAX_MD_SIZE*2]; - EVP_MD_CTX mdctx; + EVP_MD_CTX *mdctx; const EVP_MD *md=NULL; unsigned char md_value[EVP_MAX_MD_SIZE]; unsigned int md_len, i; + mdctx = NULL; if (digest) { OpenSSL_add_all_digests(); @@ -229,8 +230,8 @@ double tsm_sendfile(dsUint32_t dsmHandle, char *fsname, char *filename, long lon #ifdef USE_DIGEST if (digest) { - EVP_MD_CTX_init(&mdctx); - EVP_DigestInit_ex(&mdctx, md, NULL); + mdctx = EVP_MD_CTX_new(); + EVP_DigestInit_ex(mdctx, md, NULL); } #endif @@ -250,7 +251,7 @@ double tsm_sendfile(dsUint32_t dsmHandle, char *fsname, char *filename, long lon #ifdef USE_DIGEST if (digest) - EVP_DigestUpdate(&mdctx, buffer, nbytes); + EVP_DigestUpdate(mdctx, buffer, nbytes); #endif dataBlk.bufferLen = nbytes; @@ -289,8 +290,8 @@ double tsm_sendfile(dsUint32_t dsmHandle, char *fsname, char *filename, long lon #ifdef USE_DIGEST if (digest) { - EVP_DigestFinal_ex(&mdctx, md_value, &md_len); - EVP_MD_CTX_cleanup(&mdctx); + EVP_DigestFinal_ex(mdctx, md_value, &md_len); + EVP_MD_CTX_free(mdctx); for(i=0; i