On Mon, Aug 7, 2017 at 6:03 PM, Tyler Hicks <tyhicks@xxxxxxxxxxxxx> wrote: >> -static u32 seccomp_run_filters(const struct seccomp_data *sd) >> +static u32 seccomp_run_filters(const struct seccomp_data *sd, >> + struct seccomp_filter **match) >> { >> struct seccomp_data sd_local; >> u32 ret = SECCOMP_RET_ALLOW; > > My version of this patch initialized *match to f here. The reason I did > that is because if BPF_PROG_RUN() returns RET_ALLOW for all > filters, I didn't want *match to remain NULL when seccomp_run_filters() > returns. FILTER_FLAG_LOG nor FILTER_FLAG_KILL_PROCESS would be affected > by this because they don't care about RET_ALLOW actions but there could > conceivably be a filter flag in the future that cares about RET_ALLOW > and not initializing *match to the first filter could result in a latent > bug for that filter flag. Very true, yes. I did intentionally adjust this because I wanted to keep the hot path as untouched as possible. > I'm fine with not adding the initialization since this is a hot path and > it doesn't help any of the currently existing/planned filter flags but I > wanted to at least mention it. Yeah, and while I doubt I'll want to ever check "match" for RET_ALLOW, I'll add a big comment there to explain it. > Reviewed-by: Tyler Hicks <tyhicks@xxxxxxxxxxxxx> Thanks! -Kees -- Kees Cook Pixel Security -- To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html