Serge E. Hallyn wrote:
> Quoting Oren Laadan ([email protected]):
>> 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
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/containers

_______________________________________________
Devel mailing list
[email protected]
https://openvz.org/mailman/listinfo/devel

Reply via email to