[Devel] Re: [RFC v14-rc][PATCH 04/23] General infrastructure for checkpoint restart
Serge E. Hallyn
serue at us.ibm.com
Fri Mar 20 14:42:48 PDT 2009
Quoting Oren Laadan (orenl at cs.columbia.edu):
>
>
> 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).
No, I'm saying you have one less byte here than what is in the actual
kernel structures. Each of those has 65 bytes. __NEW_UTS_LEN is
64. I realize that these fields should never get that long, but
it's a risk.
-serge
_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
More information about the Devel
mailing list