Jacek Caban : vbscript: Don't allow OP_dim on already initialized arrays.
Alexandre Julliard
julliard at winehq.org
Mon Nov 25 13:33:14 CST 2013
Module: wine
Branch: master
Commit: 1c1a261122e9a2de546bc818d9739e38acec8e21
URL: http://source.winehq.org/git/wine.git/?a=commit;h=1c1a261122e9a2de546bc818d9739e38acec8e21
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Nov 22 16:48:33 2013 +0100
vbscript: Don't allow OP_dim on already initialized arrays.
---
dlls/vbscript/interp.c | 18 ++++++++++--------
1 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/dlls/vbscript/interp.c b/dlls/vbscript/interp.c
index 4a137cd..6365461 100644
--- a/dlls/vbscript/interp.c
+++ b/dlls/vbscript/interp.c
@@ -984,6 +984,7 @@ static HRESULT interp_dim(exec_ctx_t *ctx)
{
const BSTR ident = ctx->instr->arg1.bstr;
const unsigned array_id = ctx->instr->arg2.uint;
+ const array_desc_t *array_desc;
ref_t ref;
HRESULT hres;
@@ -1007,15 +1008,16 @@ static HRESULT interp_dim(exec_ctx_t *ctx)
return E_FAIL;
}
- if(!ctx->arrays[array_id]) {
- const array_desc_t *array_desc;
+ if(ctx->arrays[array_id]) {
+ FIXME("Array already initialized\n");
+ return E_FAIL;
+ }
- array_desc = ctx->func->array_descs + array_id;
- if(array_desc->dim_cnt) {
- ctx->arrays[array_id] = SafeArrayCreate(VT_VARIANT, array_desc->dim_cnt, array_desc->bounds);
- if(!ctx->arrays[array_id])
- return E_OUTOFMEMORY;
- }
+ array_desc = ctx->func->array_descs + array_id;
+ if(array_desc->dim_cnt) {
+ ctx->arrays[array_id] = SafeArrayCreate(VT_VARIANT, array_desc->dim_cnt, array_desc->bounds);
+ if(!ctx->arrays[array_id])
+ return E_OUTOFMEMORY;
}
V_VT(ref.u.v) = VT_ARRAY|VT_BYREF|VT_VARIANT;
More information about the wine-cvs
mailing list