--- libaitsync/src/dir.c 2012/11/13 14:19:39 1.4 +++ libaitsync/src/dir.c 2014/02/04 16:58:17 1.5 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: dir.c,v 1.4 2012/11/13 14:19:39 misho Exp $ +* $Id: dir.c,v 1.5 2014/02/04 16:58:17 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -12,7 +12,7 @@ terms: All of the documentation and software included in the ELWIX and AITNET Releases is copyrighted by ELWIX - Sofia/Bulgaria -Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 +Copyright 2004 - 2014 by Michael Pounov . All rights reserved. Redistribution and use in source and binary forms, with or without @@ -78,7 +78,7 @@ create_tags() { int *tags; - tags = calloc(TABLESIZ, sizeof(int)); + tags = e_calloc(TABLESIZ, sizeof(int)); if (!tags) { LOGERR; } else @@ -98,7 +98,7 @@ create_diridx(const char *csDir, int lm, int *tags, st struct stat sb; register int i; - l = malloc(sizeof(struct tagDirName)); + l = e_malloc(sizeof(struct tagDirName)); if (!l) { LOGERR; *list = NULL; @@ -111,8 +111,8 @@ create_diridx(const char *csDir, int lm, int *tags, st old = getcwd(NULL, 0); if (chdir(csDir) == -1) { LOGERR; - free(old); - free(l); + e_free(old); + e_free(l); *list = NULL; return -1; } @@ -120,8 +120,8 @@ create_diridx(const char *csDir, int lm, int *tags, st if (!dir) { LOGERR; chdir(old); - free(old); - free(l); + e_free(old); + e_free(l); *list = NULL; return -1; } @@ -129,12 +129,12 @@ create_diridx(const char *csDir, int lm, int *tags, st if (d.d_type == DT_DIR && (!strcmp(d.d_name, ".") || !strcmp(d.d_name, ".."))) continue; - l = realloc(l, sizeof(struct tagDirName) * (n + 2)); + l = e_realloc(l, sizeof(struct tagDirName) * (n + 2)); if (!l) { LOGERR; chdir(old); - free(old); - free(l); + e_free(old); + e_free(l); *list = NULL; closedir(dir); return -1; @@ -206,7 +206,7 @@ create_diridx(const char *csDir, int lm, int *tags, st tags[l[i].tag] = i; chdir(old); - free(old); + e_free(old); *list = l; return n; @@ -218,7 +218,7 @@ create_diridx(const char *csDir, int lm, int *tags, st * sync_dirChkSum() - Calculate checksum of directory * * @csDir = Directory - * @md = Message digest allocated memory, must be free() after use! + * @md = Message digest allocated memory, must be e_free() after use! * return: -1 error or !=-1 ok */ int @@ -229,7 +229,7 @@ sync_dirChkSum(const char *csDir, u_char **md) MD5_CTX ctx; register int ret = 0; - *md = malloc(MD5_DIGEST_LENGTH); + *md = e_malloc(MD5_DIGEST_LENGTH); if (!*md) { LOGERR; return -1; @@ -239,7 +239,7 @@ sync_dirChkSum(const char *csDir, u_char **md) dir = opendir(csDir); if (!dir) { LOGERR; - free(*md); + e_free(*md); return -1; } @@ -275,7 +275,7 @@ sync_dircmp(const char *csDir1, const char *csDir2) if (sync_dirChkSum(csDir1, &md[0]) == -1) return ret; if (sync_dirChkSum(csDir2, &md[1]) == -1) { - free(md[0]); + e_free(md[0]); return ret; } @@ -284,8 +284,8 @@ sync_dircmp(const char *csDir1, const char *csDir2) else ret = 1; - free(md[1]); - free(md[0]); + e_free(md[1]); + e_free(md[0]); return ret; } @@ -295,7 +295,7 @@ sync_dircmp(const char *csDir1, const char *csDir2) * @csDir1 = Directory 1 * @csDir2 = Directory 2 or File list, if "-" get input from console * @lm = Long mode options, !=NULL long output - * @list = Output diff list, after use must be free()! + * @list = Output diff list, after use must be e_free()! * return: -1 error, 0 is equal or >0 count of returned list items */ int @@ -324,8 +324,8 @@ sync_dircmpList(const char *csDir1, const char *csDir2 if (lstat(csDir2, &sb) == -1) { LOGERR; - free(tags); - free(l); + e_free(tags); + e_free(l); return -1; } if (S_ISDIR(sb.st_mode)) { @@ -333,18 +333,18 @@ sync_dircmpList(const char *csDir1, const char *csDir2 if (chdir(csDir2) == -1) { LOGERR; chdir(old); - free(old); - free(tags); - free(l); + e_free(old); + e_free(tags); + e_free(l); return -1; } dir = opendir("."); if (!dir) { LOGERR; chdir(old); - free(old); - free(tags); - free(l); + e_free(old); + e_free(tags); + e_free(l); return -1; } while (!readdir_r(dir, &d, &pd) && pd) { @@ -358,13 +358,13 @@ sync_dircmpList(const char *csDir1, const char *csDir2 find = find_tag(tags, l, t, hash); /* element not find in dir1, added */ if (!find) { - l = realloc(l, sizeof(struct tagDirName) * (n + 2)); + l = e_realloc(l, sizeof(struct tagDirName) * (n + 2)); if (!l) { LOGERR; chdir(old); - free(old); + e_free(old); closedir(dir); - free(tags); + e_free(tags); return -1; } else memset(&l[n + 1], 0, sizeof(struct tagDirName)); @@ -430,14 +430,14 @@ sync_dircmpList(const char *csDir1, const char *csDir2 } closedir(dir); chdir(old); - free(old); + e_free(old); } else { if (strcmp(csDir2, "-")) { f = fopen(csDir2, "r"); if (!f) { LOGERR; - free(tags); - free(l); + e_free(tags); + e_free(l); return -1; } } @@ -460,12 +460,12 @@ sync_dircmpList(const char *csDir1, const char *csDir2 find = find_tag(tags, l, t, hash); /* element not find in dir1, added */ if (!find) { - l = realloc(l, sizeof(struct tagDirName) * (n + 2)); + l = e_realloc(l, sizeof(struct tagDirName) * (n + 2)); if (!l) { LOGERR; if (strcmp(csDir2, "-")) fclose(f); - free(tags); + e_free(tags); return -1; } else memset(&l[n + 1], 0, sizeof(struct tagDirName)); @@ -493,7 +493,7 @@ sync_dircmpList(const char *csDir1, const char *csDir2 } n -= cx; - free(tags); + e_free(tags); *list = l; return n; }