I think that is correct. Can you please send patch with git send-email so that I can apply it? Please consider it for master branch. You can also refer to CONTRIBUTING file for things needed to be done to send a patch. Please as any questions if you have one.
Thank you, Maxim. On 29 March 2016 at 15:39, Tilli, Juha-Matti (Nokia - FI/Espoo) < [email protected]> wrote: > Hello, > > > > I just created a patch for this that seems to fix the crash, but I have no > idea if I’m doing it in the correct way. Basically, the idea is to leave > cpu_hz_max uninitialized if we can’t find the information. > > > > So, could somebody comment on this patch: > > > > diff --git a/platform/linux-generic/arch/x86/odp_sysinfo_parse.c > b/platform/linux-generic/arch/x86/odp_sysinfo_parse.c > > index 2ef49e4..3d186d2 100644 > > --- a/platform/linux-generic/arch/x86/odp_sysinfo_parse.c > > +++ b/platform/linux-generic/arch/x86/odp_sysinfo_parse.c > > @@ -24,10 +24,13 @@ int odp_cpuinfo_parser(FILE *file, odp_system_info_t > *sysinfo) > > sizeof(sysinfo->model_str[id]) - 1); > > pos = strchr(sysinfo->model_str[id], '@'); > > - *(pos - 1) = '\0'; > > - if (sscanf(pos, "@ %lfGHz", &ghz) == 1) { > > - hz = (uint64_t)(ghz * 1000000000.0); > > - sysinfo->cpu_hz_max[id] = hz; > > + if (pos) > > + { > > + *(pos - 1) = '\0'; > > + if (sscanf(pos, "@ %lfGHz", &ghz) == 1) { > > + hz = (uint64_t)(ghz * > 1000000000.0); > > + sysinfo->cpu_hz_max[id] = hz; > > + } > > } > > id++; > > } > > > > I found that the code has been originally written by Hongbo Zhang. I can > prepare a patch suitable for “git am”, if people agree that my way is the > right way of doing this. > > > > *From:* lng-odp [mailto:[email protected]] *On Behalf Of *EXT > Tilli, Juha-Matti (Nokia - FI/Espoo) > *Sent:* Tuesday, March 29, 2016 2:23 PM > *To:* [email protected] > *Subject:* [lng-odp] No "@" in CPU string causes ODP to crash > > > > Hi, > > > > My coworker recently had an ODP crash (he used the most recent api-next), > apparently related to not having “@” in CPU string. The CPU string is: > > > > $ cat /proc/cpuinfo |grep Xeon|uniq -c > > 8 model name : Intel Xeon E312xx (Sandy Bridge) > > > > This is a virtualized environment (KVM running on CentOS). > > > > The segfault happens at the second of these two lines in > odp_cpuinfo_parser: > > > > pos = strchr(sysinfo->model_str[id], '@'); > > *(pos - 1) = '\0'; > > > > So, should this odp_cpuinfo_parser be modified to work even in cases that > there is no “@” in the CPU string? > > > > I would submit a patch, but I’m not entirely sure how the code should be > fixed. It seems incorrect in assuming that strchr always finds a match. > > > > _______________________________________________ > lng-odp mailing list > [email protected] > https://lists.linaro.org/mailman/listinfo/lng-odp > >
_______________________________________________ lng-odp mailing list [email protected] https://lists.linaro.org/mailman/listinfo/lng-odp
