Mercurial > vim
comparison src/list.c @ 30001:6c1a9d7a931f v9.0.0338
patch 9.0.0338: return value of list_append_list() not always checked
Commit: https://github.com/vim/vim/commit/9ba6194d4cba60fec4ed10c33d2d4fbe6e38c696
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Aug 31 11:25:06 2022 +0100
patch 9.0.0338: return value of list_append_list() not always checked
Problem: Return value of list_append_list() not always checked.
Solution: Check return value and handle failure.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 31 Aug 2022 12:30:06 +0200 |
parents | 86eb4aba16c3 |
children | adb0de8be4ce |
comparison
equal
deleted
inserted
replaced
30000:3f18d0ae046b | 30001:6c1a9d7a931f |
---|---|
1074 { | 1074 { |
1075 list_T *l2 = list_alloc(); | 1075 list_T *l2 = list_alloc(); |
1076 | 1076 |
1077 if (l2 == NULL) | 1077 if (l2 == NULL) |
1078 break; | 1078 break; |
1079 if (list_append_list(rettv->vval.v_list, l2) == FAIL | 1079 if (list_append_list(rettv->vval.v_list, l2) == FAIL) |
1080 || list_append_number(l2, idx) == FAIL | 1080 { |
1081 vim_free(l2); | |
1082 break; | |
1083 } | |
1084 if (list_append_number(l2, idx) == FAIL | |
1081 || list_append_tv(l2, &li->li_tv) == FAIL) | 1085 || list_append_tv(l2, &li->li_tv) == FAIL) |
1082 break; | 1086 break; |
1083 } | 1087 } |
1084 } | 1088 } |
1085 | 1089 |
1106 if (len == 0) | 1110 if (len == 0) |
1107 break; | 1111 break; |
1108 l2 = list_alloc(); | 1112 l2 = list_alloc(); |
1109 if (l2 == NULL) | 1113 if (l2 == NULL) |
1110 break; | 1114 break; |
1111 if (list_append_list(rettv->vval.v_list, l2) == FAIL | 1115 if (list_append_list(rettv->vval.v_list, l2) == FAIL) |
1112 || list_append_number(l2, idx) == FAIL | 1116 { |
1117 vim_free(l2); | |
1118 break; | |
1119 } | |
1120 if (list_append_number(l2, idx) == FAIL | |
1113 || list_append_string(l2, p, len) == FAIL) | 1121 || list_append_string(l2, p, len) == FAIL) |
1114 break; | 1122 break; |
1115 p += len; | 1123 p += len; |
1116 } | 1124 } |
1117 } | 1125 } |