diff --git a/tests/checkasm/checkasm.c b/tests/checkasm/checkasm.c
index 86d3bab30aaadc183bf67e0f10c3472e5f7f0b81..5b4aa640da11cd10354c950bd895decafe80cebc 100644
--- a/tests/checkasm/checkasm.c
+++ b/tests/checkasm/checkasm.c
@@ -477,7 +477,8 @@ static void print_cpu_name(void)
 
 int main(int argc, char *argv[])
 {
-    int i, seed, ret = 0;
+    unsigned int seed;
+    int i, ret = 0;
 
 #if ARCH_ARM && HAVE_ARMV5TE_EXTERNAL
     if (have_vfp(av_get_cpu_flags()) || have_neon(av_get_cpu_flags()))
@@ -504,7 +505,7 @@ int main(int argc, char *argv[])
         argv++;
     }
 
-    seed = (argc > 1) ? atoi(argv[1]) : av_get_random_seed();
+    seed = (argc > 1) ? strtoul(argv[1], NULL, 10) : av_get_random_seed();
     fprintf(stderr, "checkasm: using random seed %u\n", seed);
     av_lfg_init(&checkasm_lfg, seed);