}
 
        /* token */
-       token = atoi(params[4]);
+       token = strtoul(params[4], NULL, 10);
        rta = (void *)(data + off);
        rta->rta_type = MPTCP_PM_ATTR_TOKEN;
        rta->rta_len = RTA_LENGTH(4);
        }
 
        /* token */
-       token = atoi(params[4]);
+       token = strtoul(params[4], NULL, 10);
        rta = (void *)(data + off);
        rta->rta_type = MPTCP_PM_ATTR_TOKEN;
        rta->rta_len = RTA_LENGTH(4);
                        if (++arg >= argc)
                                error(1, 0, " missing token value");
 
-                       token = atoi(argv[arg]);
+                       token = strtoul(argv[arg], NULL, 10);
                        rta = (void *)(data + off);
                        rta->rta_type = MPTCP_PM_ATTR_TOKEN;
                        rta->rta_len = RTA_LENGTH(4);
                        if (++arg >= argc)
                                error(1, 0, " missing token value");
 
-                       token = atoi(argv[arg]);
+                       token = strtoul(argv[arg], NULL, 10);
                } else
                        error(1, 0, "unknown keyword %s", argv[arg]);
        }
                                error(1, 0, " missing token value");
 
                        /* token */
-                       token = atoi(argv[arg]);
+                       token = strtoul(argv[arg], NULL, 10);
                } else if (!strcmp(argv[arg], "flags")) {
                        char *tok, *str;