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

Reply via email to