diff --git a/src/sbbs3/js_msgbase.c b/src/sbbs3/js_msgbase.c index 32dcdf0b40b7cfa97264012e741311ab6c72890e..4906514425c5060b2c71ae8176ac43c168f2cfe0 100644 --- a/src/sbbs3/js_msgbase.c +++ b/src/sbbs3/js_msgbase.c @@ -1468,11 +1468,11 @@ js_get_msg_header(JSContext *cx, uintN argc, jsval *arglist) /* Now parse message offset/id and get message */ if(JSVAL_IS_NUMBER(argv[n])) { if(by_offset) { /* Get by offset */ - if(!JS_ValueToInt32(cx,argv[n],(int32*)&(p->msg).offset)) + if(!JS_ValueToInt32(cx,argv[n++],(int32*)&(p->msg).offset)) return JS_FALSE; } else { /* Get by number */ - if(!JS_ValueToInt32(cx,argv[n],(int32*)&(p->msg).hdr.number)) + if(!JS_ValueToInt32(cx,argv[n++],(int32*)&(p->msg).hdr.number)) return JS_FALSE; } @@ -1496,7 +1496,7 @@ js_get_msg_header(JSContext *cx, uintN argc, jsval *arglist) smb_unlockmsghdr(&(p->p->smb),&(p->msg)); JS_RESUMEREQUEST(cx, rc); } else if(JSVAL_IS_STRING(argv[n])) { /* Get by ID */ - JSSTRING_TO_MSTRING(cx, JSVAL_TO_STRING(argv[n]), cstr, NULL); + JSSTRING_TO_MSTRING(cx, JSVAL_TO_STRING(argv[n++]), cstr, NULL); HANDLE_PENDING(cx); rc=JS_SUSPENDREQUEST(cx); if((p->p->status=smb_getmsghdr_by_msgid(&(p->p->smb),&(p->msg) @@ -1788,6 +1788,13 @@ js_put_msg_header(JSContext *cx, uintN argc, jsval *arglist) hdr = JSVAL_TO_OBJECT(argv[n++]); + privatemsg_t* mp; + mp=(privatemsg_t*)JS_GetPrivate(cx,hdr); + if(mp->expand_fields) { + JS_ReportError(cx, "Message header has 'expanded fields'", WHERE); + return JS_FALSE; + } + rc=JS_SUSPENDREQUEST(cx); if((p->status=smb_getmsgidx(&(p->smb), &msg))!=SMB_SUCCESS) { JS_RESUMEREQUEST(cx, rc);