param: replace P_OCTAL variable setting with s3 version which uses sscanf
authorGarming Sam <garming@catalyst.net.nz>
Tue, 25 Feb 2014 23:31:03 +0000 (12:31 +1300)
committerJeremy Allison <jra@samba.org>
Wed, 7 May 2014 17:49:18 +0000 (19:49 +0200)
Signed-off-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
lib/param/loadparm.c

index 33960da2a7b02247af6a33535bb8db68a9e7c659..bf0cbc0e9d919b7f64238404ff00f439a3738dd3 100644 (file)
@@ -1449,7 +1449,11 @@ static bool set_variable(TALLOC_CTX *mem_ctx, int parmnum, void *parm_ptr,
                        break;
 
                case P_OCTAL:
-                       *(int *)parm_ptr = strtol(pszParmValue, NULL, 8);
+                       i = sscanf(pszParmValue, "%o", (int *)parm_ptr);
+                       if ( i != 1 ) {
+                               DEBUG ( 0, ("Invalid octal number %s\n", pszParmName ));
+                               return false;
+                       }
                        break;
 
                case P_BYTES: