Integrate review comments from Julien Cristau

* libmisc/copydir.c: Missing parenthesis in comment.
	* libmisc/chowndir.c: Fixed memory leak on failed realloc().
	* libmisc/chowndir.c: Make sure the buffer for the path is large
	enough.
	* libmisc/remove_tree.c: Remove check for NULL before free().
This commit is contained in:
nekral-guest 2010-09-05 15:34:42 +00:00
parent d1bad25f40
commit dffc624b37
4 changed files with 18 additions and 8 deletions

View File

@ -1,3 +1,12 @@
2010-09-05 Nicolas François <nicolas.francois@centraliens.net>
Integrate review comments from Julien Cristau
* libmisc/copydir.c: Missing parenthesis in comment.
* libmisc/chowndir.c: Fixed memory leak on failed realloc().
* libmisc/chowndir.c: Make sure the buffer for the path is large
enough.
* libmisc/remove_tree.c: Remove check for NULL before free().
2010-08-29 Nicolas François <nicolas.francois@centraliens.net> 2010-08-29 Nicolas François <nicolas.francois@centraliens.net>
* man/po/fr.po: Fix 2 fuzzy strings. * man/po/fr.po: Fix 2 fuzzy strings.

View File

@ -96,6 +96,7 @@ int chown_tree (const char *root,
} }
while ((ent = readdir (dir))) { while ((ent = readdir (dir))) {
size_t ent_name_len;
uid_t tmpuid = (uid_t) -1; uid_t tmpuid = (uid_t) -1;
gid_t tmpgid = (gid_t) -1; gid_t tmpgid = (gid_t) -1;
@ -113,13 +114,15 @@ int chown_tree (const char *root,
* destination files. * destination files.
*/ */
if (strlen (root) + strlen (ent->d_name) + 2 > new_name_len) { ent_name_len = strlen (root) + strlen (ent->d_name) + 2;
new_name = realloc (new_name, new_name_len + 1024); if (ent_name_len > new_name_len) {
if (NULL == new_name) { char *tmp = realloc (new_name, ent_name_len);
if (NULL == tmp) {
rc = -1; rc = -1;
break; break;
} }
new_name_len += 1024; new_name = tmp;
new_name_len = ent_name_len;
} }
(void) snprintf (new_name, new_name_len, "%s/%s", root, ent->d_name); (void) snprintf (new_name, new_name_len, "%s/%s", root, ent->d_name);

View File

@ -273,7 +273,7 @@ static /*@exposed@*/ /*@null@*/struct link_name *check_link (const char *name, c
* as it goes. * as it goes.
* *
* When reset_selinux is enabled, extended attributes (and thus * When reset_selinux is enabled, extended attributes (and thus
* SELinux attributes are not copied. * SELinux attributes) are not copied.
* *
* old_uid and new_uid are used to set the ownership of the copied * old_uid and new_uid are used to set the ownership of the copied
* files. Unless old_uid is set to -1, only the files owned by * files. Unless old_uid is set to -1, only the files owned by

View File

@ -88,9 +88,7 @@ int remove_tree (const char *root, bool remove_root)
* Make the filename for the current entry. * Make the filename for the current entry.
*/ */
if (NULL != new_name) { free (new_name);
free (new_name);
}
new_name = (char *) malloc (new_len); new_name = (char *) malloc (new_len);
if (NULL == new_name) { if (NULL == new_name) {
err = -1; err = -1;