]> git.proxmox.com Git - mirror_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>
Sat, 17 Feb 2018 16:16:52 +0000 (17:16 +0100)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/cgroups/cgfsng.c

index bf0d59b3b26721f3135f1f7fad503dee2d3d4a9a..feeb6541cc88e8c776224bc0cfb16a23380d08ea 100644 (file)
@@ -401,27 +401,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;