diff --git a/gfx/cairo/libpixman/src/pixman-cpu.c b/gfx/cairo/libpixman/src/pixman-cpu.c
--- a/gfx/cairo/libpixman/src/pixman-cpu.c
+++ b/gfx/cairo/libpixman/src/pixman-cpu.c
@@ -257,19 +257,22 @@ pixman_arm_read_auxv()
 	arm_tests_initialized = TRUE;
 	return;
     }
 
     fread(buf, sizeof(char), 1024, f);
     fclose(f);
     pos = strstr(buf, ver_token);
     if (pos) {
-	int ver = *(pos + strlen(ver_token)) - '0';
-	arm_has_v7 = ver >= 7;
-	arm_has_v6 = ver >= 6;
+	char vchar = *(pos + strlen(ver_token));
+	if (vchar >= '0' && vchar <= '9') {
+	    int ver = vchar - '0';
+	    arm_has_v7 = ver >= 7;
+	    arm_has_v6 = ver >= 6;
+	}
     }
     arm_has_neon = strstr(buf, "neon") != NULL;
     arm_has_vfp = strstr(buf, "vfp") != NULL;
     arm_has_iwmmxt = strstr(buf, "iwmmxt") != NULL;
     arm_tests_initialized = TRUE;
 }
 
 #else
