Messages in this thread | | | Date | Wed, 05 Jun 2013 14:45:34 +0200 | From | Takashi Iwai <> | Subject | Re: [PATCH 3/3] firmware loader: allow distribution to choose default search paths |
| |
At Wed, 5 Jun 2013 20:36:19 +0800, Ming Lei wrote: > > On Wed, Jun 5, 2013 at 7:57 PM, Takashi Iwai <tiwai@suse.de> wrote: > > > > Hmm, separating with semicolons isn't so common, but we can live with > > Looks there are seldom such usage patterns in kernel, so could you let me > know which separator is more common?
$PATH uses colon, but I don't know of many others.
> > it. I thought the previous loop can be kept but just pass each member > > to fw_get_file_firmware() unconditionally. This will reduce the > > changes, I guess. But it's just a matter of taste, here is no > > critically hot path, after all. > > Yes, aother way is to move 'fw_path_para' out of fw_path[], and only > let fw_get_fw_file_from_paths() deal with 'fw_path_para' and > CONFIG_FW_CUSTOMIZED_PATH. Looks it is still clean.
Why not just pass all strings to fw_get_fw_file_from_paths(), no matter whether it's a single or multiple path strings?
static const char * const fw_path[] = { fw_path_para, #ifdef CONFIG_FW_CUSTOMIZED_PATH CONFIG_FW_CUSTOMIZED_PATH, #endif "/lib/firmware/updates/" UTS_RELEASE, "/lib/firmware/updates", "/lib/firmware/" UTS_RELEASE, };
....
for (i = 0; i < ARRAY_SIZE(fw_path); i++) { /* skip the unset customized path */ if (!fw_path[i][0]) continue; success = fw_get_fw_file_from_paths(fw_path[i], path, buf); if (success) break; }
> > > >> + if (strstr(path, "..")) > >> + continue; > > > > I expect you'll prepare this path sanity check part in a separate > > patch, right? It's basically independent from the new kconfig. > > Yes, it will be submitted as another patch, also I plan to add > the check on firmware_name in _request_firmware_prepare() > so that the similar problem can be found earlier.
Sounds good.
Takashi
| |