diff options
Diffstat (limited to 'libglusterfs/src')
| -rw-r--r-- | libglusterfs/src/Makefile.am | 7 | ||||
| -rw-r--r-- | libglusterfs/src/call-stub.c | 4 | ||||
| -rw-r--r-- | libglusterfs/src/checksum.c | 34 | ||||
| -rw-r--r-- | libglusterfs/src/checksum.h | 6 | ||||
| -rw-r--r-- | libglusterfs/src/common-utils.c | 14 | ||||
| -rw-r--r-- | libglusterfs/src/common-utils.h | 2 | 
6 files changed, 24 insertions, 43 deletions
diff --git a/libglusterfs/src/Makefile.am b/libglusterfs/src/Makefile.am index c7f3d9ba70b..2dab8735c96 100644 --- a/libglusterfs/src/Makefile.am +++ b/libglusterfs/src/Makefile.am @@ -4,8 +4,7 @@ libglusterfs_la_CFLAGS = -fPIC  -Wall -g -shared -nostartfiles $(GF_CFLAGS) \  libglusterfs_la_CPPFLAGS = -D_FILE_OFFSET_BITS=64 -D__USE_FILE_OFFSET64 \  	-D_GNU_SOURCE -DXLATORDIR=\"$(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator\" \  	-D$(GF_HOST_OS) -I$(CONTRIBDIR)/rbtree \ -	-DSCHEDULERDIR=\"$(libdir)/glusterfs/$(PACKAGE_VERSION)/scheduler\" \ -	-I$(CONTRIBDIR)/md5 +	-DSCHEDULERDIR=\"$(libdir)/glusterfs/$(PACKAGE_VERSION)/scheduler\"  libglusterfs_la_LIBADD = @LEXLIB@ @@ -17,7 +16,7 @@ libglusterfs_la_SOURCES = dict.c xlator.c logging.c \  	hashfn.c defaults.c common-utils.c timer.c inode.c call-stub.c \  	compat.c fd.c compat-errno.c event.c mem-pool.c gf-dirent.c syscall.c \  	iobuf.c globals.c statedump.c stack.c checksum.c daemon.c \ -	$(CONTRIBDIR)/md5/md5.c $(CONTRIBDIR)/rbtree/rb.c rbthash.c latency.c \ +	$(CONTRIBDIR)/rbtree/rb.c rbthash.c latency.c \  	graph.c $(CONTRIBDIR)/uuid/clear.c $(CONTRIBDIR)/uuid/copy.c \  	$(CONTRIBDIR)/uuid/gen_uuid.c $(CONTRIBDIR)/uuid/pack.c \  	$(CONTRIBDIR)/uuid/parse.c $(CONTRIBDIR)/uuid/unparse.c \ @@ -33,7 +32,7 @@ noinst_HEADERS = common-utils.h defaults.h dict.h glusterfs.h hashfn.h \  	logging.h xlator.h stack.h timer.h list.h inode.h call-stub.h compat.h \  	fd.h revision.h compat-errno.h event.h mem-pool.h byte-order.h \  	gf-dirent.h locking.h syscall.h iobuf.h globals.h statedump.h \ -	checksum.h daemon.h $(CONTRIBDIR)/md5/md5.h $(CONTRIBDIR)/rbtree/rb.h \ +	checksum.h daemon.h $(CONTRIBDIR)/rbtree/rb.h \  	rbthash.h iatt.h latency.h mem-types.h $(CONTRIBDIR)/uuid/uuidd.h \  	$(CONTRIBDIR)/uuid/uuid.h $(CONTRIBDIR)/uuid/uuidP.h \  	$(CONTRIB_BUILDDIR)/uuid/uuid_types.h syncop.h graph-utils.h trie.h run.h \ diff --git a/libglusterfs/src/call-stub.c b/libglusterfs/src/call-stub.c index 01e919d6943..308a9ad1fc1 100644 --- a/libglusterfs/src/call-stub.c +++ b/libglusterfs/src/call-stub.c @@ -22,9 +22,9 @@  #include "config.h"  #endif +#include <openssl/md5.h>  #include <inttypes.h> -#include "md5.h"  #include "call-stub.h"  #include "mem-types.h" @@ -2124,7 +2124,7 @@ fop_rchecksum_cbk_stub (call_frame_t *frame,                          weak_checksum;                  stub->args.rchecksum_cbk.strong_checksum = -                        memdup (strong_checksum, MD5_DIGEST_LEN); +                        memdup (strong_checksum, MD5_DIGEST_LENGTH);          }          if (xdata)                  stub->xdata = dict_ref (xdata); diff --git a/libglusterfs/src/checksum.c b/libglusterfs/src/checksum.c index cea782293bd..7575b2f15b1 100644 --- a/libglusterfs/src/checksum.c +++ b/libglusterfs/src/checksum.c @@ -17,12 +17,10 @@    <http://www.gnu.org/licenses/>.  */ -#include <inttypes.h> +#include <openssl/md5.h> +#include <stdint.h>  #include "glusterfs.h" -#include "md5.h" -#include "checksum.h" -  /*   * The "weak" checksum required for the rsync algorithm, @@ -31,22 +29,26 @@   *   * "a simple 32 bit checksum that can be upadted from either end   *  (inspired by Mark Adler's Adler-32 checksum)" + * + * Note: these functions are only called to compute checksums on + * pathnames; they don't need to handle arbitrarily long strings of + * data. Thus int32_t and uint32_t are sufficient   */  uint32_t -gf_rsync_weak_checksum (char *buf1, int32_t len) +gf_rsync_weak_checksum (unsigned char *buf, size_t len)  { -        int32_t i; +        int32_t i = 0;          uint32_t s1, s2; -        signed char *buf = (signed char *) buf1;          uint32_t csum;          s1 = s2 = 0; -        for (i = 0; i < (len-4); i+=4) { -                s2 += 4*(s1 + buf[i]) + 3*buf[i+1] + 2*buf[i+2] + buf[i+3]; - -                s1 += buf[i+0] + buf[i+1] + buf[i+2] + buf[i+3]; +        if (len >= 4) { +                for (; i < (len-4); i+=4) { +                        s2 += 4*(s1 + buf[i]) + 3*buf[i+1] + 2*buf[i+2] + buf[i+3]; +                        s1 += buf[i+0] + buf[i+1] + buf[i+2] + buf[i+3]; +                }          }          for (; i < len; i++) { @@ -66,13 +68,7 @@ gf_rsync_weak_checksum (char *buf1, int32_t len)   */  void -gf_rsync_strong_checksum (char *buf, int32_t len, uint8_t *sum) +gf_rsync_strong_checksum (unsigned char *data, size_t len, unsigned char *md5)  { -        md_context m; - -        md5_begin (&m); -        md5_update (&m, (unsigned char *) buf, len); -        md5_result (&m, (unsigned char *) sum); - -        return; +        MD5(data, len, md5);  } diff --git a/libglusterfs/src/checksum.h b/libglusterfs/src/checksum.h index 3542036bffc..19221b92235 100644 --- a/libglusterfs/src/checksum.h +++ b/libglusterfs/src/checksum.h @@ -20,8 +20,10 @@  #ifndef __CHECKSUM_H__  #define __CHECKSUM_H__ -uint32_t gf_rsync_weak_checksum (char *buf, int32_t len); +uint32_t +gf_rsync_weak_checksum (unsigned char *buf, size_t len); -void gf_rsync_strong_checksum (char *buf, int32_t len, uint8_t *sum); +void +gf_rsync_strong_checksum (unsigned char *buf, size_t len, unsigned char *sum);  #endif /* __CHECKSUM_H__ */ diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c index f26d2bdc318..c5080246a2f 100644 --- a/libglusterfs/src/common-utils.c +++ b/libglusterfs/src/common-utils.c @@ -52,7 +52,6 @@  #include "glusterfs.h"  #include "stack.h"  #include "globals.h" -#include "md5.h"  #include "lkowner.h"  #ifndef AI_ADDRCONFIG @@ -1786,19 +1785,6 @@ lkowner_utoa_r (gf_lkowner_t *lkowner, char *dst, int len)          return dst;  } -void _get_md5_str (char *out_str, size_t outlen, -                   const uint8_t *input, int n) -{ -        uint8_t out[MD5_DIGEST_LEN] = {0}; -        int     j = 0; - -        GF_ASSERT (outlen >= (2*MD5_DIGEST_LEN + 1)); -        get_md5 (out, input, n); -        for (j = 0; j < MD5_DIGEST_LEN; j++) -                snprintf(out_str + j * 2, outlen-j*2, "%02x", out[j]); - -} -  void* gf_array_elem (void *a, int index, size_t elem_size)  {          uint8_t* ptr = a; diff --git a/libglusterfs/src/common-utils.h b/libglusterfs/src/common-utils.h index 3aa0143d2ed..9d98975e14f 100644 --- a/libglusterfs/src/common-utils.h +++ b/libglusterfs/src/common-utils.h @@ -482,8 +482,6 @@ char *uuid_utoa_r (uuid_t uuid, char *dst);  char *lkowner_utoa (gf_lkowner_t *lkowner);  char *lkowner_utoa_r (gf_lkowner_t *lkowner, char *dst, int len); -void _get_md5_str (char *out_str, size_t outlen, -                   const uint8_t *input, int n);  void gf_array_insertionsort (void *a, int l, int r, size_t elem_size,                               gf_cmp cmp);  int gf_is_str_int (const char *value);  | 
