Merge pull request #3707 from martin-frbg/getarch_risc
Fix crash in RISCV autodetection when pmodel is not present in /proc/cpuinfo
This commit is contained in:
commit
648a69a67e
|
@ -88,18 +88,21 @@ int detect(void){
|
||||||
infile = fopen("/proc/cpuinfo", "r");
|
infile = fopen("/proc/cpuinfo", "r");
|
||||||
while (fgets(buffer, sizeof(buffer), infile)){
|
while (fgets(buffer, sizeof(buffer), infile)){
|
||||||
if(!strncmp(buffer, "model name", 10)){
|
if(!strncmp(buffer, "model name", 10)){
|
||||||
strcpy(model_buffer, buffer)
|
strcpy(model_buffer, buffer);
|
||||||
pmodel = strchr(isa_buffer, ':') + 1;
|
pmodel = strchr(isa_buffer, ':') + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!strncmp(buffer, "isa", 3)){
|
if(!strncmp(buffer, "isa", 3)){
|
||||||
strcpy(isa_buffer, buffer)
|
strcpy(isa_buffer, buffer);
|
||||||
pisa = strchr(isa_buffer, '4') + 1;
|
pisa = strchr(isa_buffer, '4') + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fclose(infile);
|
fclose(infile);
|
||||||
|
|
||||||
|
if (!pmodel)
|
||||||
|
return(CPU_GENERIC);
|
||||||
|
|
||||||
if (strstr(pmodel, check_c910_str) && strchr(pisa, 'v'))
|
if (strstr(pmodel, check_c910_str) && strchr(pisa, 'v'))
|
||||||
return CPU_C910V;
|
return CPU_C910V;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue