[PATCH] xml: save the right sensor pressure when we have multiple sensor readings

Linus Torvalds torvalds at linux-foundation.org
Thu Sep 14 11:13:49 PDT 2017


From: Linus Torvalds <torvalds at linux-foundation.org>
Date: Thu, 14 Sep 2017 11:06:46 -0700
Subject: [PATCH] xml: save the right sensor pressure when we have multiple sensor readings

The XML saving code got the multi-sensor case completely wrong, because
it still had one place where it would always save the first pressure,
rather than the pressure from the right sensor.

This was hidden by the fact that old data would be saved using the
legacy model that only ever used the first sensor slot.  Only if you
actually had multiple sensor slots used would the bug trigger.

Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
---

This is a serious saving bug if you use the XML format, but it would be 
hidden by the fact that you'd have to have a newly downloaded dive with 
actual multiple sensors, because loading of old XML dives would never 
trigger it, and the single-sensor case also doesn't show it.

So in practice probably nobody actually hit this, but in theory it's a 
major data loss.

 core/save-xml.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/core/save-xml.c b/core/save-xml.c
index df6b99eb..d3b9e6c8 100644
--- a/core/save-xml.c
+++ b/core/save-xml.c
@@ -220,7 +220,7 @@ static void save_sample(struct membuffer *b, struct sample *sample, struct sampl
 				put_pressure(b, p, " o2pressure='", " bar'");
 				continue;
 			}
-			put_pressure(b, sample->pressure[0], " pressure='", " bar'");
+			put_pressure(b, p, " pressure='", " bar'");
 			if (sensor != old->sensor[0]) {
 				put_format(b, " sensor='%d'", sensor);
 				old->sensor[0] = sensor;
-- 
2.14.1.538.gc8f31819a



More information about the subsurface mailing list