Print this page
11506 smatch resync
*** 45,54 ****
--- 45,58 ----
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
+ /*
+ * Copyright 2019 Joyent, Inc.
+ */
+
#include "ficl.h"
#if FICL_ROBUST >= 2
#define FICL_VM_CHECK(vm) \
FICL_VM_ASSERT(vm, (*(vm->ip - 1)) == vm->runningWord)
*** 2163,2174 ****
{
ficlString s;
char *pad = (char *)vm->pad;
s = ficlVmGetWord(vm);
! if (FICL_STRING_GET_LENGTH(s) > FICL_PAD_SIZE)
! FICL_STRING_SET_LENGTH(s, FICL_PAD_SIZE);
(void) strncpy(pad, FICL_STRING_GET_POINTER(s),
FICL_STRING_GET_LENGTH(s));
pad[FICL_STRING_GET_LENGTH(s)] = '\0';
return ((int)(FICL_STRING_GET_LENGTH(s)));
--- 2167,2178 ----
{
ficlString s;
char *pad = (char *)vm->pad;
s = ficlVmGetWord(vm);
! if (FICL_STRING_GET_LENGTH(s) >= FICL_PAD_SIZE)
! FICL_STRING_SET_LENGTH(s, FICL_PAD_SIZE - 1);
(void) strncpy(pad, FICL_STRING_GET_POINTER(s),
FICL_STRING_GET_LENGTH(s));
pad[FICL_STRING_GET_LENGTH(s)] = '\0';
return ((int)(FICL_STRING_GET_LENGTH(s)));