]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
lib: Simplify conv_str_size
authorVolker Lendecke <vl@samba.org>
Mon, 26 Jan 2026 09:43:44 +0000 (10:43 +0100)
committerAnoop C S <anoopcs@samba.org>
Sun, 15 Feb 2026 10:42:33 +0000 (10:42 +0000)
conv_str_size_error() from lib/util has almost the same code

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
source3/lib/util_str.c

index 68be9a0ec09a094b43977095379227cafcf9988c..3a2964890b85457ce7505209789f616191fe17bc 100644 (file)
@@ -393,38 +393,10 @@ int fstr_sprintf(fstring s, const char *fmt, ...)
 uint64_t conv_str_size(const char * str)
 {
         uint64_t lval;
-        char *end;
-       int error = 0;
+       bool ok;
 
-        if (str == NULL || *str == '\0') {
-                return 0;
-        }
-
-       lval = smb_strtoull(str, &end, 10, &error, SMB_STR_STANDARD);
-
-        if (error != 0) {
-                return 0;
-        }
-
-       if (*end == '\0') {
-               return lval;
-       }
-
-       if (strwicmp(end, "K") == 0) {
-               lval *= 1024ULL;
-       } else if (strwicmp(end, "M") == 0) {
-               lval *= (1024ULL * 1024ULL);
-       } else if (strwicmp(end, "G") == 0) {
-               lval *= (1024ULL * 1024ULL *
-                        1024ULL);
-       } else if (strwicmp(end, "T") == 0) {
-               lval *= (1024ULL * 1024ULL *
-                        1024ULL * 1024ULL);
-       } else if (strwicmp(end, "P") == 0) {
-               lval *= (1024ULL * 1024ULL *
-                        1024ULL * 1024ULL *
-                        1024ULL);
-       } else {
+       ok = conv_str_size_error(str, &lval);
+       if (!ok) {
                return 0;
        }