The Samba-Bugzilla – Attachment 3906 Details for
Bug 4370
umount.cfis does not remove mtab entry for relative links
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
canonicalize the path supplied to umount.cifs command
umount.cifs.c.4.1patch (text/plain), 1.43 KB, created by
shirishpargaonkar@gmail.com
on 2009-02-02 10:48:12 UTC
(
hide
)
Description:
canonicalize the path supplied to umount.cifs command
Filename:
MIME Type:
Creator:
shirishpargaonkar@gmail.com
Created:
2009-02-02 10:48:12 UTC
Size:
1.43 KB
patch
obsolete
>--- client.orig/umount.cifs.c 2009-02-02 04:35:20.000000000 -0600 >+++ client/umount.cifs.c 2009-02-02 05:29:11.000000000 -0600 >@@ -33,6 +33,7 @@ > #include <errno.h> > #include <string.h> > #include <mntent.h> >+#include <limits.h> > #include "mount.h" > > #define UNMOUNT_CIFS_VERSION_MAJOR "0" >@@ -231,6 +232,37 @@ static int remove_from_mtab(char * mount > return rc; > } > >+/* Make a canonical pathname from PATH. Returns a freshly malloced string. >+ It is up the *caller* to ensure that the PATH is sensible. i.e. >+ canonicalize ("/dev/fd0/.") returns "/dev/fd0" even though ``/dev/fd0/.'' >+ is not a legal pathname for ``/dev/fd0'' Anything we cannot parse >+ we return unmodified. */ >+static char * >+canonicalize (char *path) >+{ >+ char *canonical = malloc (PATH_MAX + 1); >+ >+ if (!canonical) { >+ fprintf(stderr, "Error! Not enough memory!\n"); >+ return NULL; >+ } >+ >+ if (strlen(path) > PATH_MAX) { >+ fprintf(stderr, "Mount point string too long\n"); >+ return NULL; >+ } >+ >+ if (path == NULL) >+ return NULL; >+ >+ if (realpath (path, canonical)) >+ return canonical; >+ >+ strncpy (canonical, path, PATH_MAX); >+ canonical[PATH_MAX] = '\0'; >+ return canonical; >+} >+ > int main(int argc, char ** argv) > { > int c; >@@ -304,7 +336,7 @@ int main(int argc, char ** argv) > argv += optind; > argc -= optind; > >- mountpoint = argv[0]; >+ mountpoint = canonicalize(argv[0]); > > if((argc < 1) || (argv[0] == NULL)) { > printf("\nMissing name of unmount directory\n");
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 4370
:
3143
|
3148
|
3905
| 3906