summaryrefslogtreecommitdiff
path: root/usr/src/lib/libdevinfo
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/libdevinfo')
-rw-r--r--usr/src/lib/libdevinfo/devinfo_devlink.c16
-rw-r--r--usr/src/lib/libdevinfo/devinfo_devperm.c11
2 files changed, 5 insertions, 22 deletions
diff --git a/usr/src/lib/libdevinfo/devinfo_devlink.c b/usr/src/lib/libdevinfo/devinfo_devlink.c
index f020e8f8a4..5417b88bc3 100644
--- a/usr/src/lib/libdevinfo/devinfo_devlink.c
+++ b/usr/src/lib/libdevinfo/devinfo_devlink.c
@@ -2405,7 +2405,7 @@ do_recurse(
struct stat sbuf;
char cur[PATH_MAX], *cp;
int i, rv = DI_WALK_CONTINUE;
- struct dirent *entp, *result;
+ struct dirent *entp;
if ((rel = rel_path(hdp, dir)) == NULL)
@@ -2427,23 +2427,12 @@ do_recurse(
if ((dp = opendir(dir)) == NULL)
return (DI_WALK_CONTINUE);
- entp = malloc(sizeof (struct dirent) + PATH_MAX + 1);
- if (entp == NULL) {
- SET_DB_ERR(hdp);
- (void) closedir(dp);
- *retp = -1;
- return (DI_WALK_TERMINATE);
- }
-
(void) snprintf(cur, sizeof (cur), "%s/", dir);
len = strlen(cur);
cp = cur + len;
len = sizeof (cur) - len;
- while (readdir_r(dp, entp, &result) == 0) {
-
- if (result == NULL)
- break;
+ while ((entp = readdir(dp)) != NULL) {
if (strcmp(entp->d_name, ".") == 0 ||
strcmp(entp->d_name, "..") == 0) {
@@ -2486,7 +2475,6 @@ next_entry:
break;
}
- free(entp);
(void) closedir(dp);
return (rv);
diff --git a/usr/src/lib/libdevinfo/devinfo_devperm.c b/usr/src/lib/libdevinfo/devinfo_devperm.c
index ef5ca55c48..b89544510a 100644
--- a/usr/src/lib/libdevinfo/devinfo_devperm.c
+++ b/usr/src/lib/libdevinfo/devinfo_devperm.c
@@ -26,7 +26,7 @@
#pragma ident "%Z%%M% %I% %E% SMI"
-#define _POSIX_PTHREAD_SEMANTICS /* for readdir_r */
+#define _POSIX_PTHREAD_SEMANTICS /* for getgrnam_r */
#ifdef lint
#define _REENTRANT /* for strtok_r */
#endif
@@ -39,7 +39,6 @@
#include <errno.h>
#include <grp.h>
#include <pwd.h>
-#include <alloca.h>
#include <nss_dbdefs.h>
#include <stdarg.h>
#include <syslog.h>
@@ -375,7 +374,7 @@ dir_dev_acc(char *path, char *left_to_do, uid_t uid, gid_t gid, mode_t mode,
struct stat stat_buf;
int err = 0;
DIR *dirp;
- struct dirent *direntp, *result;
+ struct dirent *direntp;
/* path must be a valid name */
if (stat(path, &stat_buf) == -1) {
@@ -433,11 +432,7 @@ dir_dev_acc(char *path, char *left_to_do, uid_t uid, gid_t gid, mode_t mode,
}
}
- direntp = alloca(sizeof (struct dirent) + MAXPATHLEN);
- while (readdir_r(dirp, direntp, &result) == 0) {
- if (result == NULL)
- break;
-
+ while ((direntp = readdir(dirp)) != NULL) {
name = direntp->d_name;
if ((strcmp(name, ".") == 0) ||
(strcmp(name, "..") == 0))