Mercurial > vim
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; |