From 5e4b523d51c11d073def64e3a2dd268eb3a9ae22 Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Wed, 22 Apr 2015 13:17:28 +0100 Subject: [PATCH] Eldbus: fix potential unsigned int underflow. Subtracting two unsigned values results in an unsigned value, which means abs() will have no effect. This also means that if base is smaller than size, we'll have an unsigned int underflow. I did it this way (with the if) because it looked like base might be smaller than size. However, please remove the if (and don't reinstate the abs) if this is not the case. --- src/lib/eldbus/eldbus_message_to_eina_value.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/eldbus/eldbus_message_to_eina_value.c b/src/lib/eldbus/eldbus_message_to_eina_value.c index 777bf17..bac9860 100644 --- a/src/lib/eldbus/eldbus_message_to_eina_value.c +++ b/src/lib/eldbus/eldbus_message_to_eina_value.c @@ -91,7 +91,7 @@ _type_offset(char type, unsigned base) return base; if (!(base % size)) return base; - padding = abs(base - size); + padding = (base > size) ? base - size : size - base; return base + padding; } -- 2.7.4