[PATCH v7 2/2] KEYS: Avoid false positive ENOMEM error on key read

Tetsuo Handa penguin-kernel at I-love.SAKURA.ne.jp
Sun Mar 22 00:31:21 UTC 2020


On 2020/03/22 3:49, Waiman Long wrote:
> +	do {

> +		if (ret > key_data_len) {
> +			if (unlikely(key_data))
> +				__kvzfree(key_data, key_data_len);
> +			key_data_len = ret;
> +			continue;	/* Allocate buffer */

Excuse me, but "continue;" inside "do { ... } while (0);" means "break;"
because "while (0)" is evaluated before continuing the loop.

----------
#include <stdio.h>

int main(int argc, char *argv[])
{
        do {
                printf("step 1\n");
                if (1) {
                        printf("step 2\n");
                        continue;
                }
                printf("step 3\n");
        } while (0);
        printf("step 4\n");
        return 0;
}
----------

----------
step 1
step 2
step 4
----------

> +		}

> +	} while (0);



More information about the Linux-security-module-archive mailing list