]> granicus.if.org Git - postgis/commitdiff
lwout_wkb.c: Address implicit type conversion with value change
authorRaúl Marín Rodríguez <rmrodriguez@carto.com>
Wed, 24 Apr 2019 11:02:21 +0000 (11:02 +0000)
committerRaúl Marín Rodríguez <rmrodriguez@carto.com>
Wed, 24 Apr 2019 11:02:21 +0000 (11:02 +0000)
lwout_wkb.c:288:16: runtime error: implicit conversion from type 'char' of value -16 (8-bit, signed) to type 'uint8_t' (aka 'unsigned char') changed the value to 240 (8-bit, unsigned)
lwout_wkb.c:654:27: runtime error: implicit conversion from type 'uint32_t' (aka 'unsigned int') of value 2147483663 (32-bit, unsigned) to type 'int' changed the value to -2147483633 (32-bit, signed)
lwout_wkb.c:213:16: runtime error: implicit conversion from type 'char' of value -128 (8-bit, signed) to type 'uint8_t' (aka 'unsigned char') changed the value to 128 (8-bit, unsigned)
lwout_wkb.c:607:27: runtime error: implicit conversion from type 'uint32_t' (aka 'unsigned int') of value 2147483651 (32-bit, unsigned) to type 'int' changed the value to -2147483645 (32-bit, signed)

References #4383

git-svn-id: http://svn.osgeo.org/postgis/trunk@17412 b70326c6-7e19-0410-871a-916f4a2858ee

liblwgeom/lwout_wkb.c

index 49bcfd665ec16221aa68deb921775ab10de6a587..4d4a55863f5edb1e628d574af7ff6adf51bab8f0 100644 (file)
@@ -193,9 +193,10 @@ static inline int wkb_swap_bytes(uint8_t variant)
 /*
 * Integer32
 */
-static uint8_t* integer_to_wkb_buf(const int ival, uint8_t *buf, uint8_t variant)
+static uint8_t *
+integer_to_wkb_buf(const uint32_t ival, uint8_t *buf, uint8_t variant)
 {
-       char *iptr = (char*)(&ival);
+       uint8_t *iptr = (uint8_t *)(&ival);
        int i = 0;
 
        if ( sizeof(int) != WKB_INT_SIZE )
@@ -270,7 +271,7 @@ static uint8_t* double_nan_to_wkb_buf(uint8_t *buf, uint8_t variant)
 */
 static uint8_t* double_to_wkb_buf(const double d, uint8_t *buf, uint8_t variant)
 {
-       char *dptr = (char*)(&d);
+       uint8_t *dptr = (uint8_t *)(&d);
        int i = 0;
 
        if ( sizeof(double) != WKB_DOUBLE_SIZE )