hurdextras-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

smbfs smbnetfs.c


From: Ludovic Courtès
Subject: smbfs smbnetfs.c
Date: Sun, 04 Mar 2012 17:07:47 +0000

CVSROOT:        /sources/hurdextras
Module name:    smbfs
Changes by:     Ludovic Courtès <civodul>       12/03/04 17:07:47

Modified files:
        .              : smbnetfs.c 

Log message:
        Use `asprintf' instead of `malloc' + `sprintf'.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/smbfs/smbnetfs.c?cvsroot=hurdextras&r1=1.8&r2=1.9

Patches:
Index: smbnetfs.c
===================================================================
RCS file: /sources/hurdextras/smbfs/smbnetfs.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- smbnetfs.c  4 Mar 2012 15:13:08 -0000       1.8
+++ smbnetfs.c  4 Mar 2012 17:07:47 -0000       1.9
@@ -1,6 +1,8 @@
 /*
   Copyright (C) 1997, 2002, 2004, 2007, 2009 Free Software Foundation, Inc.
   Copyright (C) 2004, 2007, 2009 Giuseppe Scrivano.
+  Copyright (C) 2012 Ludovic Courtès <address@hidden>
+
   Written by Giuseppe Scrivano <address@hidden>
 
   This program is free software; you can redistribute it and/or
@@ -159,15 +161,13 @@
   int err = create_node (&node);
   if (err)
     return;  
+
   netfs_root_node = node;
   node->nn->parent = 0;
-  node->nn->filename = malloc (strlen (credentials.share) + 1);
-  if (node->nn->filename)
-    strcpy (node->nn->filename, credentials.share);
+  node->nn->filename = strdup (credentials.share);
   
   netfs_validate_stat (node, 0);
-  
-  }
+}
 
 
 static int
@@ -196,11 +196,7 @@
   else
     n->parent = 0;
 
-  n->filename = malloc ( strlen(top->nn->filename) + strlen (filename) + 1);
-  if (!n->filename)
-    return 0;
-
-  sprintf (n->filename, "%s/%s", top->nn->filename, filename);
+  asprintf (&n->filename, "%s/%s", top->nn->filename, filename);
 
   mutex_lock (&smb_mutex);  
   err = smbc_stat (n->filename, &st);
@@ -470,18 +466,13 @@
   char *filename;
 
   if (dir->nn->filename)
-    filename = malloc (strlen (dir->nn->filename) + strlen (name) + 2);
+    asprintf (&filename, "%s/%s", dir->nn->filename, name);
   else
-    filename = malloc (strlen (credentials.share) + strlen (name) + 1);
+    asprintf (&filename, "%s/%s", credentials.share, name);
 
   if (!filename)
     return ENOMEM;
 
-  if (dir->nn->filename)
-    sprintf (filename, "%s/%s", dir->nn->filename,  name);
-  else
-    sprintf (filename, "%s/%s", credentials.share, name);
-
   mutex_lock (&smb_mutex);
   error_t err = smbc_unlink (filename);
   mutex_unlock (&smb_mutex);  
@@ -503,17 +494,17 @@
   char *filename2;             /* Destination file name.  */
 
   if (fromdir->nn->filename)
-    filename = malloc (strlen (fromdir->nn->filename) + strlen (fromname) + 2);
+    asprintf (&filename, "%s/%s", fromdir->nn->filename,fromname);
   else
-    filename = malloc (strlen (credentials.share) + strlen (fromname) + 1);
+    asprintf (&filename, "%s/%s", credentials.share, fromname);
 
   if (!filename)
     return ENOMEM;
 
   if (todir->nn->filename)
-    filename2 =malloc (strlen (todir->nn->filename) + strlen (toname) + 2);
+    asprintf (&filename2, "%s/%s", todir->nn->filename, toname);
   else
-    filename2 = malloc (strlen (credentials.share) + strlen (toname) + 1);
+    asprintf (&filename2, "%s/%s", credentials.share, toname);
 
   if (!filename2)
     {
@@ -521,16 +512,6 @@
       return ENOMEM;
     }
 
-  if (fromdir->nn->filename)
-    sprintf (filename, "%s/%s", fromdir->nn->filename,fromname);
-  else
-    sprintf (filename, "%s/%s", credentials.share, fromname);
-
-  if (todir->nn->filename)
-    sprintf (filename, "%s/%s", todir->nn->filename, toname);
-  else
-    sprintf (filename, "%s/%s", credentials.share, toname);
-
   mutex_lock (&smb_mutex);
   error_t err = smbc_rename (filename, filename2);
   mutex_unlock (&smb_mutex);  
@@ -548,17 +529,13 @@
   error_t err;
 
   if (dir->nn->filename)
-    filename = malloc (strlen (dir->nn->filename) + strlen (name) + 2);
+    asprintf (&filename, "%s/%s", dir->nn->filename,name);
   else
-    filename = malloc (strlen (credentials.share) + strlen (name) + 1);
+    asprintf (&filename, "%s/%s", credentials.share, name);
+
   if (!filename)
     return ENOMEM;
 
-  if (dir->nn->filename)
-    sprintf (filename, "%s/%s", dir->nn->filename,name);
-  else
-    sprintf (filename, "%s/%s", credentials.share, name);
-
   mutex_lock (&smb_mutex);
   err = smbc_mkdir (filename, mode);
   mutex_unlock (&smb_mutex);  
@@ -574,17 +551,13 @@
   error_t err;
 
   if (dir->nn->filename)
-    filename = malloc (strlen (dir->nn->filename) +strlen (name) + 2);
+    asprintf (&filename, "%s/%s", dir->nn->filename,    name);
   else
-    filename = malloc (strlen (credentials.share) + strlen (name) + 1);
+    asprintf (&filename, "%s/%s", credentials.share, name);
+
   if (!filename)
     return ENOMEM;
 
-  if (dir->nn->filename)
-    sprintf (filename, "%s/%s", dir->nn->filename,    name);
-  else
-    sprintf (filename, "%s/%s", credentials.share, name);
-
   mutex_lock (&smb_mutex);
   err = smbc_rmdir (filename);
   mutex_unlock (&smb_mutex);  
@@ -619,19 +592,15 @@
   *np = 0;
 
   if (dir->nn->filename)
-    filename = malloc ( strlen (dir->nn->filename) +strlen (name) + 2);
+    asprintf (&filename, "%s/%s", dir->nn->filename,name);
   else
-    filename = malloc (strlen (credentials.share) + strlen (name) + 1);
+    asprintf (&filename, "%s/%s", credentials.share, name);
+
   if (!filename)
     return ENOMEM;
 
-  if (dir->nn->filename)
-    sprintf (filename, "%s/%s", dir->nn->filename,name);
-  else
-    sprintf (filename, "%s/%s", credentials.share, name);
-
   mutex_lock (&smb_mutex);
-  fd = smbc_open (filename,O_WRONLY | O_CREAT , O_RDWR);
+  fd = smbc_open (filename, O_WRONLY | O_CREAT , O_RDWR);
   if (fd < 0)
     {
       mutex_unlock (&smb_mutex);  
@@ -963,30 +932,20 @@
         else
           continue;
 
-        char *stat_file_name;
-        stat_file_name = malloc (strlen (dir->nn->filename)
-                                 + strlen (dirent->name) + 2);
-        if(!stat_file_name)
-          {
-            mutex_lock (&smb_mutex);
-            smbc_closedir(dd);
-            mutex_unlock (&smb_mutex);
-            return ENOMEM;
-          }                      
+        char stat_file_name[strlen (dir->nn->filename)
+                           + strlen (dirent->name) + 2];
     
         if (!strcmp (dirent->name, "."))
           {
-            sprintf (stat_file_name, "%s", dir->nn->filename);
+           strcpy (stat_file_name, ".");
             mutex_lock (&smb_mutex);
-            err=smbc_stat (stat_file_name, &st);
+            err = smbc_stat (dir->nn->filename, &st);
             mutex_unlock (&smb_mutex);
           }
-        else if (!strcmp (dirent->name,".."))
+        else if (!strcmp (dirent->name, ".."))
           {
-            if (dir->nn->parent)
-              sprintf (stat_file_name, "%s/%s", dir->nn->filename, 
dirent->name);
-            else
-              st.st_ino = 0;
+           st = empty_stat (cred);
+           st.st_mode |= S_IFDIR;
           }
         else
           {
@@ -1003,8 +962,6 @@
              }
           }
 
-        free (stat_file_name);
-
         if (err)
           {
             mutex_lock (&smb_mutex);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]