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)