[CRIU] [PATCH 2/2] config: Don't free memory in PARSING_USER_CONF
Radostin Stoyanov
rstoyanov1 at gmail.com
Sat Jan 19 21:11:16 MSK 2019
On 19/01/2019 17:23, Radostin Stoyanov wrote:
> On restore, when state=PARSING_USER_CONF the _argv pointer
> points to the location which contains the envirnment variables
> and should not be free()-ed.
>
> Signed-off-by: Radostin Stoyanov <rstoyanov1 at gmail.com>
> ---
> criu/config.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/criu/config.c b/criu/config.c
> index 89afdd748..f3c8d4254 100644
> --- a/criu/config.c
> +++ b/criu/config.c
> @@ -509,7 +509,7 @@ int parse_options(int argc, char **argv, bool *usage_error,
> /* Only if opt is -1 we are going to the next configuration input */
> if (opt == -1) {
> /* Do not free any memory if it points to argv */
> - if (state != PARSING_ARGV + 1) {
> + if (state != PARSING_ARGV + 1 && state != PARSING_USER_CONF) {
> int i;
> for (i=1; i < _argc; i++) {
> free(_argv[i]);
I sent this patch because I am getting the error:
(00.000000) Unable to get $HOME directory, local configuration file will
not be used.
(00.000014) Warn (criu/log.c:203): The early log isn't empty
(00.000022) Version: 3.11 (gitid
v3.11-125-g93043916c)
On Arch Linux with kernel version 5.0.0-rc2-g6b529fb0a3ea
However, I just noticed that the error does not reproduce on Fedora 29.
I will continue to investigate.
Radostin
More information about the CRIU
mailing list