Axel Bonnet <axel.bonnet@xxxxxxxxxxxxxxx> writes: > @@ -86,16 +87,49 @@ struct origin { > ... > +static void fill_origin_blob(struct diff_options *opt, > + struct origin *o, mmfile_t *file) > { > if (!o->file.ptr) { > enum object_type type; > num_read_blob++; > - file->ptr = read_sha1_file(o->blob_sha1, &type, > - (unsigned long *)(&(file->size))); > + > + if (DIFF_OPT_TST(opt, ALLOW_TEXTCONV) && > + textconv_object(o->path, o->blob_sha1, &file->ptr, > + (size_t *) &file->size)) This cast is not correct, as there is no guarantee that your size_t and typeof(mmfile_t.size) are compatible. Depending on the gcc version, you would get "dereferencing type-punned pointer will break strict-aliasing rules" error. The same issue exists in Clément's patch to builtin/cat-file.c. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html