Mercurial > vim
comparison src/eval.c @ 17795:9c15c85db5d8 v8.1.1894
patch 8.1.1894: not checking for out-of-memory of autoload_name()
commit https://github.com/vim/vim/commit/1058c9d9b5815467182d487f10f6dd71385cb796
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Aug 20 21:58:00 2019 +0200
patch 8.1.1894: not checking for out-of-memory of autoload_name()
Problem: Not checking for out-of-memory of autoload_name().
Solution: Check for NULL. (Dominique Pelle, closes https://github.com/vim/vim/issues/4846)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 20 Aug 2019 22:00:03 +0200 |
parents | 0f7ae8010787 |
children | 8377ec7c5824 |
comparison
equal
deleted
inserted
replaced
17794:b12378999d97 | 17795:9c15c85db5d8 |
---|---|
9437 char_u *scriptname; | 9437 char_u *scriptname; |
9438 | 9438 |
9439 // Get the script file name: replace '#' with '/', append ".vim". | 9439 // Get the script file name: replace '#' with '/', append ".vim". |
9440 scriptname = alloc(STRLEN(name) + 14); | 9440 scriptname = alloc(STRLEN(name) + 14); |
9441 if (scriptname == NULL) | 9441 if (scriptname == NULL) |
9442 return FALSE; | 9442 return NULL; |
9443 STRCPY(scriptname, "autoload/"); | 9443 STRCPY(scriptname, "autoload/"); |
9444 STRCAT(scriptname, name); | 9444 STRCAT(scriptname, name); |
9445 for (p = scriptname + 9; (p = vim_strchr(p, AUTOLOAD_CHAR)) != NULL; | 9445 for (p = scriptname + 9; (p = vim_strchr(p, AUTOLOAD_CHAR)) != NULL; |
9446 q = p, ++p) | 9446 q = p, ++p) |
9447 *p = '/'; | 9447 *p = '/'; |
9467 p = vim_strchr(name, AUTOLOAD_CHAR); | 9467 p = vim_strchr(name, AUTOLOAD_CHAR); |
9468 if (p == NULL || p == name) | 9468 if (p == NULL || p == name) |
9469 return FALSE; | 9469 return FALSE; |
9470 | 9470 |
9471 tofree = scriptname = autoload_name(name); | 9471 tofree = scriptname = autoload_name(name); |
9472 if (scriptname == NULL) | |
9473 return FALSE; | |
9472 | 9474 |
9473 /* Find the name in the list of previously loaded package names. Skip | 9475 /* Find the name in the list of previously loaded package names. Skip |
9474 * "autoload/", it's always the same. */ | 9476 * "autoload/", it's always the same. */ |
9475 for (i = 0; i < ga_loaded.ga_len; ++i) | 9477 for (i = 0; i < ga_loaded.ga_len; ++i) |
9476 if (STRCMP(((char_u **)ga_loaded.ga_data)[i] + 9, scriptname + 9) == 0) | 9478 if (STRCMP(((char_u **)ga_loaded.ga_data)[i] + 9, scriptname + 9) == 0) |