altos: Updating pyro format tried to copy entries with no value
authorKeith Packard <keithp@keithp.com>
Sun, 7 Jan 2024 06:08:54 +0000 (22:08 -0800)
committerKeith Packard <keithp@keithp.com>
Sun, 7 Jan 2024 06:08:54 +0000 (22:08 -0800)
Need to check for NO_VALUE before attempting to copy data, otherwise
things will go badly.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/kernel/ao_pyro.c

index c40c50df42befd1128512a919f7ab9323055246f..4c69b82a349c340e4831b42375f5d5f58417425d 100644 (file)
@@ -684,9 +684,11 @@ ao_pyro_update_version(void)
 
                        for (v = 0; v < NUM_PYRO_VALUES; v++)
                        {
-                               value = ao_pyro_get_1_24(&pyro_1_24[p], ao_pyro_values[v].flag);
-                               ao_pyro_put(&tmp, ao_pyro_values[v].offset,
-                                           ao_pyro_size(ao_pyro_values[v].flag), value);
+                               if (ao_pyro_values[v].offset != NO_VALUE) {
+                                       value = ao_pyro_get_1_24(&pyro_1_24[p], ao_pyro_values[v].flag);
+                                       ao_pyro_put(&tmp, ao_pyro_values[v].offset,
+                                                   ao_pyro_size(ao_pyro_values[v].flag), value);
+                               }
                        }
                        memcpy(&pyro_1_25[p], &tmp, sizeof(tmp));
                }