Skip to content

Creation of global variables in Lua should not be allowed #1047

Open
@ChrisKitching

Description

Standalone testcase to reproduce the problem (tested with version 5.2.2 of ioredis-mock):

describe("Creation of global variables with lua", () => {
    test("works with ioredis-mock (shouldn't)", async() => {
        const IORedis = require('ioredis-mock');
        const redis = new IORedis('localhost');
        await redis.eval('foo = 3', 0);
    });
    test("Fails with real redis", async() => {
        const IORedis = require('ioredis');
        const redis = new IORedis('localhost');

        // ReplyError: ERR Error running script (call to f_4501040002bbe2b1855b07f138595e980f445a6f): @enable_strict_lua:8: user_script:1: Script attempted to create global variable 'foo'
        await redis.eval('foo = 3', 0);
    });
});

ioredis-mock allows the creation of global variables in lua scripts, but real redis does not.

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions