When this function was called with a byte length of 4 (something that happens
often in this file), the last iteration of this loop would shift an int left by
24. On a platform with 32-bit ints (most platforms Graphviz runs on) this shifts
_into_ the sign bit, something that is undefined behavior with respect to the C
standard.
The changes in this commit make the shift well defined and remove a
-Wsign-conversion warning.
- Smyrna artifacts are no longer installed when Smyrna is disabled
- calling convention mismatches in delaunay.c’s GTS code
- impure assertion in `jacobi`
+- undefined behavior in libgvc’s reading of little endian numbers
## [2.49.3] – 2021-10-22
ch = fgetc(f);
if (feof(f))
return FALSE;
- *val |= (ch << 8*i);
+ *val |= (unsigned)ch << 8 * i;
}
return TRUE;
}