Skip to content

Commit 83e980b

Browse files
committed
webOS: fix logging crash on startup
1 parent d660982 commit 83e980b

File tree

1 file changed

+26
-27
lines changed

1 file changed

+26
-27
lines changed

libretro-common/features/features_cpu.c

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -870,6 +870,7 @@ void cpu_features_get_model_name(char *s, int len)
870870
if (pipe)
871871
{
872872
char buf[256];
873+
873874
while (fgets(buf, sizeof(buf), pipe))
874875
{
875876
if (strncmp(buf, "Model name:", 11) == 0)
@@ -881,46 +882,44 @@ void cpu_features_get_model_name(char *s, int len)
881882
while (*p == ' ' || *p == '\t') p++;
882883
size_t len2 = strcspn(p, "\r\n");
883884

884-
char *tmp = (char *)malloc(len2 + 1);
885-
if (tmp)
885+
if (len2 > 0)
886886
{
887-
memcpy(tmp, p, len2);
888-
tmp[len2] = '\0';
889-
890-
if (model_name && *model_name)
887+
char *tmp = malloc(len2 + 1);
888+
if (tmp)
891889
{
892-
size_t oldlen = strlen(model_name);
893-
char *combined = (char *)malloc(oldlen + len2 + 4);
894-
if (combined)
890+
memcpy(tmp, p, len2);
891+
tmp[len2] = '\0';
892+
893+
if (s[0] != '\0')
895894
{
896-
memcpy(combined, model_name, oldlen);
897-
combined[oldlen] = ' ';
898-
combined[oldlen + 1] = '(';
899-
memcpy(combined + oldlen + 2, tmp, len2);
900-
combined[oldlen + 2 + len2] = ')';
901-
combined[oldlen + 2 + len2 + 1] = '\0';
902-
free(model_name);
903-
model_name = combined;
895+
size_t oldlen = strlen(s);
896+
char *combined = malloc(oldlen + len2 + 4);
897+
if (combined)
898+
{
899+
memcpy(combined, s, oldlen);
900+
combined[oldlen] = ' ';
901+
combined[oldlen + 1] = '(';
902+
memcpy(combined + oldlen + 2, tmp, len2);
903+
combined[oldlen + 2 + len2] = ')';
904+
combined[oldlen + 2 + len2 + 1] = '\0';
905+
906+
strlcpy(s, combined, len);
907+
free(combined);
908+
}
909+
}
910+
else
911+
{
912+
strlcpy(s, tmp, len);
904913
}
905914
free(tmp);
906915
}
907-
else
908-
{
909-
free(model_name);
910-
model_name = tmp;
911-
}
912916
}
913917
}
914918
break;
915919
}
916920
}
917921
pclose(pipe);
918922
}
919-
920-
if (model_name)
921-
{
922-
strlcpy(s, model_name, len);
923-
}
924923
}
925924
#endif
926925
}

0 commit comments

Comments
 (0)