Re: [PATCH v3 10/23] untracked cache: save to an index extension

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Dec 8, 2014 at 9:04 PM, Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> wrote:
> +void write_untracked_extension(struct strbuf *out, struct untracked_cache *untracked)
> +{
> +       struct ondisk_untracked_cache *ouc;
> +       struct write_data wd;
> +       unsigned char varbuf[16];
> +       int len = 0, varint_len;
> +       if (untracked->exclude_per_dir)
> +               len = strlen(untracked->exclude_per_dir);
> +       ouc = xmalloc(sizeof(*ouc) + len);
> +       stat_data_to_disk(&ouc->info_exclude_stat, &untracked->ss_info_exclude.stat);
> +       stat_data_to_disk(&ouc->excludes_file_stat, &untracked->ss_excludes_file.stat);
> +       hashcpy(ouc->info_exclude_sha1, untracked->ss_info_exclude.sha1);
> +       hashcpy(ouc->excludes_file_sha1, untracked->ss_excludes_file.sha1);
> +       ouc->dir_flags = htonl(untracked->dir_flags);
> +       memcpy(ouc->exclude_per_dir, untracked->exclude_per_dir, len + 1);
> +       strbuf_add(out, ouc, sizeof(*ouc) + len);

just fyi, this sizeof(*ouc) here is wrong because we write down an
unknown number of padding by the compiler after the last field "char
exclude_per_dir[1]". I will use offsetof(struct..., exclude_per_dir)
next time. Spotted by valgrind.
-- 
Duy
--
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




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]