[LEDE-DEV] uhttpd problems with env variable in cgi

p.wassi at gmx.at p.wassi at gmx.at
Sun Oct 22 05:19:56 PDT 2017

Hi Karl,
> There's really been very few commits to uhttpd, it shouldn't be
> hard to bisect to the specific one that causes this.

Ok, I tracked it down to 88c0b4b6d00152c54a0f1367ae839c71547281e1 commited
by Jo-Philipp. Before that commit, everything is fine to me.
However, IMHO this commit is totaly unrelated to what my problems are, so I
investigated further (in the meantime also on brmc47xx).

I've traced it up to uh_create_process() in proc.c where it forks a new process.
When entering the uh_create_process(), everything is still fine (i.e. pi->query is still
holding the correct value).
However, after doing blob_buf_init(&proc->hdr, 0); the value of pi->query is gone.
So neither the parent nor the child process have the value then.
If the QUERY_STRING is long enough (>= 8 chars), it will survive blob_buf_init().
Interesting to me: when using another user/pswd, that border is at >= 16 chars.
Anyway, I've landed at libubox - is this a libubox issue, is the blob_buf_init
not used as intended, or am I foolish when interpreting pi's member variables
after doing blob_buf_init?

P. Wassi

More information about the Lede-dev mailing list