# HG changeset patch # User Markus Bröker # Date 1277150280 -7200 # Node ID d82f65e902d092cb8b55063ff7c3e1ecd91f9c9a # Parent f837cf975e95c656b3b3ee459965aa8713044fa4 getdir errors: avoid unneeded memory leaks committer: Markus Bröker diff --git a/lsflib/src/getdir.c b/lsflib/src/getdir.c --- a/lsflib/src/getdir.c +++ b/lsflib/src/getdir.c @@ -48,29 +48,23 @@ } while ((entry = readdir (directory))) { - list = (char *)malloc (strlen (root) + 1 + strlen (entry->d_name) + 1); + if ((!strcmp (entry->d_name, ".")) || (!strcmp (entry->d_name, ".."))) + continue; - if (list == NULL) { - perror ("malloc"); - return; - } - + list = malloc (strlen (root) + 1 + strlen (entry->d_name) + 1); sprintf (list, "%s/%s", root, entry->d_name); - if (!strcmp (entry->d_name, ".")) - continue; - if (!strcmp (entry->d_name, "..")) - continue; if (isDir (list)) { printf ("Directory: %s\n", list); if (recursive) getdir (list, recursive); + free (list); continue; } printf ("%s\n", list); + free (list); } - free (list); closedir (directory); } diff --git a/lsflib/src/md5recursive.c b/lsflib/src/md5recursive.c --- a/lsflib/src/md5recursive.c +++ b/lsflib/src/md5recursive.c @@ -30,26 +30,18 @@ } while ((entry = readdir (directory))) { - list = (char *)malloc (strlen (root) + 1 + strlen (entry->d_name) + 1); - - if (list == NULL) { - perror ("malloc"); - return; - } - - sprintf (list, "%s/%s", root, entry->d_name); - - if (!strcmp (entry->d_name, ".")) + if ((!strcmp (entry->d_name, ".")) || (!strcmp (entry->d_name, ".."))) continue; - if (!strcmp (entry->d_name, "..")) - continue; + list = malloc (strlen (root) + 1 + strlen (entry->d_name) + 1); + sprintf (list, "%s/%s", root, entry->d_name); if (isDir (list)) { fprintf (stderr, "Directory: %s\n", list); if (recursive) { md5recursive (list, recursive); } + free (list); continue; } @@ -60,9 +52,9 @@ for (i = 0; i < 16; i++) printf ("%02x", value[i]); printf (" %s\n", list); + free (list); free (value); } - free (list); closedir (directory); } diff --git a/lsflib/src/md5sum.c b/lsflib/src/md5sum.c --- a/lsflib/src/md5sum.c +++ b/lsflib/src/md5sum.c @@ -23,15 +23,11 @@ if ((f = fopen (fname, "rb")) == NULL) { perror ("FOPEN"); - value = malloc (1); - value = 0; - return value; + return NULL; } if ((md = EVP_get_digestbyname ("md5")) == NULL) { - value = malloc (1); - value = 0; - return value; + return NULL; } EVP_MD_CTX_init (&mdctx);