[PATCH 07/10] mount.cifs: fix error handling when duplicating options string
Jeff Layton <[email protected]>
| Newsgroups | gmane.linux.file-systems.cifs |
|---|---|
| Message-ID | <[email protected]> |
Signed-off-by: Jeff Layton <[email protected]> --- mount.cifs.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/mount.cifs.c b/mount.cifs.c index 4631310..76cf851 100644 --- a/mount.cifs.c +++ b/mount.cifs.c @@ -57,6 +57,9 @@ #define MAX_UNC_LEN 1024 +/* I believe that the kernel limits options data to a page */ +#define MAX_OPTIONS_LEN 4096 + #ifndef SAFE_FREE #define SAFE_FREE(x) do { if ((x) != NULL) {free(x); x=NULL;} } while(0) #endif @@ -1225,8 +1228,10 @@ int main(int argc, char ** argv) #endif break; case 'o': - orgoptions = strdup(optarg); - break; + orgoptions = strndup(optarg, MAX_OPTIONS_LEN); + if (!orgoptions) + exit(EX_SYSERR); + break; case 'r': /* mount readonly */ flags |= MS_RDONLY; break; -- 1.6.6.1