]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
cgfsng: lxc_cpumask()
authorChristian Brauner <christian.brauner@ubuntu.com>
Sat, 17 Feb 2018 16:16:52 +0000 (17:16 +0100)
committerChristian Brauner <christian.brauner@ubuntu.com>
Wed, 21 Feb 2018 14:48:14 +0000 (15:48 +0100)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/cgroups/cgfsng.c

index e0a516e480e455f7411427e2472dc6a7d108e8b3..f969c03ff69c463fcb61faf8552d79507d6ba15d 100644 (file)
@@ -392,27 +392,33 @@ static bool is_set(unsigned bit, uint32_t *bitarr)
  *
  *     0,2-3
  *
- *  into bit array
+ * into bit array
  *
  *     1 0 1 1
  */
 static uint32_t *lxc_cpumask(char *buf, size_t nbits)
 {
        char *token;
+       size_t arrlen;
+       uint32_t *bitarr;
        char *saveptr = NULL;
-       size_t arrlen = BITS_TO_LONGS(nbits);
-       uint32_t *bitarr = calloc(arrlen, sizeof(uint32_t));
+
+       arrlen = BITS_TO_LONGS(nbits);
+       bitarr = calloc(arrlen, sizeof(uint32_t));
        if (!bitarr)
                return NULL;
 
        for (; (token = strtok_r(buf, ",", &saveptr)); buf = NULL) {
                errno = 0;
-               unsigned start = strtoul(token, NULL, 0);
-               unsigned end = start;
+               unsigned end, start;
+               char *range;
 
-               char *range = strchr(token, '-');
+               start = strtoul(token, NULL, 0);
+               end = start;
+               range = strchr(token, '-');
                if (range)
                        end = strtoul(range + 1, NULL, 0);
+
                if (!(start <= end)) {
                        free(bitarr);
                        return NULL;