From d2c04230fb3a71e2a464c8c608b5d3f4d00b618b Mon Sep 17 00:00:00 2001 From: Vincent Bernat Date: Wed, 24 Jul 2013 18:33:51 +0200 Subject: [PATCH] lib: correctly set altitude unit without erasing neighbouring data The way the altitude unit was set in buffer was erasing 4 unrelated bits with 0. This made the altitude precision wrong. --- src/lib/atom-private.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/atom-private.c b/src/lib/atom-private.c index efb18f42..1516dbca 100644 --- a/src/lib/atom-private.c +++ b/src/lib/atom-private.c @@ -1877,7 +1877,8 @@ _lldpctl_atom_set_int_med_location(lldpctl_atom_t *atom, lldpctl_key_t key, case 0: case LLDP_MED_LOCATION_ALTITUDE_UNIT_METER: case LLDP_MED_LOCATION_ALTITUDE_UNIT_FLOOR: - mloc->location->data[10] = value << 4; + mloc->location->data[10] &= 0x0f; + mloc->location->data[10] |= value << 4; return atom; default: goto bad; } -- 2.39.5