[Devel] Re: [RFC v14-rc][PATCH 04/23] General infrastructure for checkpoint restart
Oren Laadan
orenl at cs.columbia.edu
Fri Mar 20 14:34:20 PDT 2009
Serge E. Hallyn wrote:
> Quoting Oren Laadan (orenl at cs.columbia.edu):
>> Changelog[v14]:
>> - Define sys_checkpoint(0,...) as asking for a self-checkpoint (Serge)
>
> Thanks.
>
>> - Revert use of 'pr_fmt' to avoid tainting whom includes us (Nathan Lynch)
>> - Explicitly indicate length of UTS fields in header
>> - Discard field 'h->parent'
>
> Nice.
>
>> + uts = utsname();
>> + ret = cr_write_buffer(ctx, uts->release, __NEW_UTS_LEN);
>> + if (ret < 0)
>> + return ret;
>> + ret = cr_write_buffer(ctx, uts->version, __NEW_UTS_LEN);
>> + if (ret < 0)
>> + return ret;
>> + ret = cr_write_buffer(ctx, uts->machine, __NEW_UTS_LEN);
>
> ...
>
>> + /* FIX: verify compatibility of release, version and machine */
>> + ret = cr_read_obj_type(ctx, uts_buf, __NEW_UTS_LEN, CR_HDR_BUFFER);
>> + if (ret < 0)
>> + goto out;
>> + ret = cr_read_obj_type(ctx, uts_buf, __NEW_UTS_LEN, CR_HDR_BUFFER);
>> + if (ret < 0)
>> + goto out;
>> + ret = cr_read_obj_type(ctx, uts_buf, __NEW_UTS_LEN, CR_HDR_BUFFER);
>
> The new_utsname fields actually have __NEW_UTS_LEN+1 chars. So
> if hostname happens to be full (__NEW_UTS_LEN chars plus a final
> null), won't you end up without the trailing null here?
Using cr_write_buffer() instead of cr_write_string() ensures that it
saves and restores exactly __NEW_UTS_LEN bytes, regardless of the null,
so I'd think it's safe (yeah, we could save a few bytes - like a drop
in the ocean).
Oren.
_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
More information about the Devel
mailing list