[CRIU] [PATCH 4/5] vdso: parasite -- Prepare new vdso mark structure.

Pavel Emelyanov xemul at parallels.com
Wed Jun 11 04:43:38 PDT 2014


On 06/11/2014 03:34 PM, Cyrill Gorcunov wrote:
> On Wed, Jun 11, 2014 at 03:29:38PM +0400, Pavel Emelyanov wrote:
>>>>
>>>>> struct vdso_mark {
>>>>>  	u64			signature;
>>>>> -	unsigned long		proxy_addr;
>>>>> +	unsigned long		proxy_vdso_addr;
>>>>> +
>>>>> +	unsigned long		version;
>>>>
>>>> Why do we need the version field? AFAIU the signature is enough.
>>>
>>> In case if we need to change it again, we can increase the version
>>> instead of changing signature (which is neat in ascii form now ;)
>>
>> Please, no. Leave only the signature.
> 
> You miss the point. The signature _must_ be unique. While "criuvdso",
> "criuVDSO" is pretty uinique i think, better to escape inventing
> some more unique values especially those which lays in memory of
> the dumpee code.

OK, fair enough. In that case the is_vdso_mark() is wrong. Once
we've found criuvdso or criuvDSO signature we should validate
the rest of the fields, not correct our "is it vdso?" assumption.

In particular, is version != 2 we should abort the dump, not
treat the found page as non-vdso-proxy.

Thanks,
Pavel



More information about the CRIU mailing list