In the for loop of exif_mnote_data_olympus_save(), if the data size 's' is less than 4 bytes, the data is written in the directory entry, but the code leaves the unused 4-s bytes uninitialized.
The same is true of exif_mnote_data_fuji_save(), despite the comment "Fill unneeded bytes with 0".
To correct this, the code should be similar to exif_data_save_data_entry() and exif_mnote_data_canon_save(), which set the padding bytes to zero. Adding the following as the last lines inside the loop should correct this problem in both cases:
if (s < 4)
memset (*buf + doff + s, 0, (4 - s));