summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--smbnetfs.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/smbnetfs.c b/smbnetfs.c
index 643080566..ff3066405 100644
--- a/smbnetfs.c
+++ b/smbnetfs.c
@@ -932,12 +932,8 @@ netfs_get_dirents (struct iouser *cred, struct node *dir, int entry,
else
continue;
- char stat_file_name[strlen (dir->nn->filename)
- + strlen (dirent->name) + 2];
-
if (!strcmp (dirent->name, "."))
{
- strcpy (stat_file_name, ".");
mutex_lock (&smb_mutex);
err = smbc_stat (dir->nn->filename, &st);
mutex_unlock (&smb_mutex);
@@ -949,7 +945,13 @@ netfs_get_dirents (struct iouser *cred, struct node *dir, int entry,
}
else
{
- sprintf (stat_file_name,"%s/%s", dir->nn->filename, dirent->name);
+ char *stat_file_name;
+
+ asprintf (&stat_file_name, "%s/%s",
+ dir->nn->filename, dirent->name);
+ if (stat_file_name == NULL)
+ return ENOMEM;
+
mutex_lock (&smb_mutex);
err = smbc_stat (stat_file_name, &st);
mutex_unlock (&smb_mutex);