comparison src/userfunc.c @ 21222:a4d00a2dadd6 v8.2.1162

patch 8.2.1162: crash when using a lambda Commit: https://github.com/vim/vim/commit/efaaaa683b7b0cebc128be5c0c257b9d6578ac96 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Jul 8 22:24:09 2020 +0200 patch 8.2.1162: crash when using a lambda Problem: Crash when using a lambda. Solution: Check for evalarg to be NULL.
author Bram Moolenaar <Bram@vim.org>
date Wed, 08 Jul 2020 22:30:03 +0200
parents ad13736a1783
children 71bd2f9adb61
comparison
equal deleted inserted replaced
21221:4bd7d87a5dbb 21222:a4d00a2dadd6
506 rettv->vval.v_partial = pt; 506 rettv->vval.v_partial = pt;
507 rettv->v_type = VAR_PARTIAL; 507 rettv->v_type = VAR_PARTIAL;
508 } 508 }
509 509
510 eval_lavars_used = old_eval_lavars; 510 eval_lavars_used = old_eval_lavars;
511 if (evalarg->eval_tofree == NULL) 511 if (evalarg != NULL && evalarg->eval_tofree == NULL)
512 evalarg->eval_tofree = tofree; 512 evalarg->eval_tofree = tofree;
513 else 513 else
514 vim_free(tofree); 514 vim_free(tofree);
515 return OK; 515 return OK;
516 516
517 errret: 517 errret:
518 ga_clear_strings(&newargs); 518 ga_clear_strings(&newargs);
519 ga_clear_strings(&newlines); 519 ga_clear_strings(&newlines);
520 vim_free(fp); 520 vim_free(fp);
521 vim_free(pt); 521 vim_free(pt);
522 if (evalarg->eval_tofree == NULL) 522 if (evalarg != NULL && evalarg->eval_tofree == NULL)
523 evalarg->eval_tofree = tofree; 523 evalarg->eval_tofree = tofree;
524 else 524 else
525 vim_free(tofree); 525 vim_free(tofree);
526 eval_lavars_used = old_eval_lavars; 526 eval_lavars_used = old_eval_lavars;
527 return FAIL; 527 return FAIL;