mirror of
https://git.proxmox.com/git/fwupd
synced 2025-07-17 18:07:55 +00:00
trivial: Fix error check when parsing Neo Freerunner descriptor
Found using Coverity.
This commit is contained in:
parent
dfb30d930a
commit
c8c2d60d65
@ -312,7 +312,6 @@ gboolean
|
|||||||
dfu_target_parse_sectors (DfuTarget *target, const gchar *alt_name, GError **error)
|
dfu_target_parse_sectors (DfuTarget *target, const gchar *alt_name, GError **error)
|
||||||
{
|
{
|
||||||
DfuTargetPrivate *priv = GET_PRIVATE (target);
|
DfuTargetPrivate *priv = GET_PRIVATE (target);
|
||||||
guint32 addr;
|
|
||||||
g_autofree gchar *str_debug = NULL;
|
g_autofree gchar *str_debug = NULL;
|
||||||
g_auto(GStrv) zones = NULL;
|
g_auto(GStrv) zones = NULL;
|
||||||
|
|
||||||
@ -327,11 +326,12 @@ dfu_target_parse_sectors (DfuTarget *target, const gchar *alt_name, GError **err
|
|||||||
/* From the Neo Freerunner */
|
/* From the Neo Freerunner */
|
||||||
if (g_str_has_prefix (alt_name, "RAM 0x")) {
|
if (g_str_has_prefix (alt_name, "RAM 0x")) {
|
||||||
DfuSector *sector;
|
DfuSector *sector;
|
||||||
addr = g_ascii_strtoull (alt_name + 6, NULL, 16);
|
guint64 addr_tmp;
|
||||||
if (addr == 0 && addr > G_MAXUINT32)
|
addr_tmp = g_ascii_strtoull (alt_name + 6, NULL, 16);
|
||||||
|
if (addr_tmp == 0 || addr_tmp > G_MAXUINT32)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
g_debug ("RAM description, so parsing");
|
g_debug ("RAM description, so parsing");
|
||||||
sector = dfu_sector_new ((guint32) addr, /* addr */
|
sector = dfu_sector_new ((guint32) addr_tmp,
|
||||||
0x0, /* size */
|
0x0, /* size */
|
||||||
0x0, /* size_left */
|
0x0, /* size_left */
|
||||||
0x0, /* zone */
|
0x0, /* zone */
|
||||||
@ -352,6 +352,7 @@ dfu_target_parse_sectors (DfuTarget *target, const gchar *alt_name, GError **err
|
|||||||
zones = g_strsplit (alt_name, "/", -1);
|
zones = g_strsplit (alt_name, "/", -1);
|
||||||
priv->alt_name_for_display = g_strdup (g_strchomp (zones[0] + 1));
|
priv->alt_name_for_display = g_strdup (g_strchomp (zones[0] + 1));
|
||||||
for (guint i = 1; zones[i] != NULL; i += 2) {
|
for (guint i = 1; zones[i] != NULL; i += 2) {
|
||||||
|
guint32 addr;
|
||||||
guint64 addr_tmp;
|
guint64 addr_tmp;
|
||||||
g_auto(GStrv) sectors = NULL;
|
g_auto(GStrv) sectors = NULL;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user