pxe: Drop get_bootfile_path()
This function no longer makes sense, since it is pretty easy to prepend the boot directory to the filename. Drop it and update its only caller. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Artem Lapkin <email2tema@gmail.com> Tested-by: Artem Lapkin <email2tema@gmail.com> Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
This commit is contained in:
parent
12df842ee3
commit
74b7a2b881
@ -64,47 +64,6 @@ int format_mac_pxe(char *outbuf, size_t outbuf_len)
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* get_bootfile_path() - Figure out the path of a file to read
|
||||
*
|
||||
* Copies the boot directory into the supplied buffer. If there is no boot
|
||||
* directory, set it to ""
|
||||
*
|
||||
* @ctx: PXE context
|
||||
* @file_path: File path to read (relative to the PXE file)
|
||||
* @bootfile_path: Place to put the bootfile path
|
||||
* @bootfile_path_size: Size of @bootfile_path in bytes
|
||||
* @allow_abs_path: true to allow an absolute path (where @file_path starts with
|
||||
* '/', false to return an empty path (and success) in that case
|
||||
* Returns 1 for success, -ENOSPC if bootfile_path_size is to small to hold the
|
||||
* resulting path
|
||||
*/
|
||||
static int get_bootfile_path(struct pxe_context *ctx, const char *file_path,
|
||||
char *bootfile_path, size_t bootfile_path_size,
|
||||
bool allow_abs_path)
|
||||
{
|
||||
size_t path_len = 0;
|
||||
|
||||
/* Only syslinux allows absolute paths */
|
||||
if (file_path[0] == '/' && allow_abs_path)
|
||||
goto ret;
|
||||
|
||||
path_len = strlen(ctx->bootdir);
|
||||
if (bootfile_path_size < path_len + 1) {
|
||||
printf("bootfile_path too small. (%zd < %zd)\n",
|
||||
bootfile_path_size, path_len);
|
||||
|
||||
return -ENOSPC;
|
||||
}
|
||||
|
||||
strncpy(bootfile_path, ctx->bootdir, path_len);
|
||||
|
||||
ret:
|
||||
bootfile_path[path_len] = '\0';
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* get_relfile() - read a file relative to the PXE file
|
||||
*
|
||||
@ -124,15 +83,13 @@ static int get_relfile(struct pxe_context *ctx, const char *file_path,
|
||||
size_t path_len;
|
||||
char relfile[MAX_TFTP_PATH_LEN + 1];
|
||||
char addr_buf[18];
|
||||
int err;
|
||||
|
||||
err = get_bootfile_path(ctx, file_path, relfile, sizeof(relfile),
|
||||
ctx->allow_abs_path);
|
||||
if (err < 0)
|
||||
return err;
|
||||
if (file_path[0] == '/' && ctx->allow_abs_path)
|
||||
*relfile = '\0';
|
||||
else
|
||||
strncpy(relfile, ctx->bootdir, MAX_TFTP_PATH_LEN);
|
||||
|
||||
path_len = strlen(file_path);
|
||||
path_len += strlen(relfile);
|
||||
path_len = strlen(file_path) + strlen(relfile);
|
||||
|
||||
if (path_len > MAX_TFTP_PATH_LEN) {
|
||||
printf("Base path too long (%s%s)\n", relfile, file_path);
|
||||
|
@ -202,7 +202,8 @@ int format_mac_pxe(char *outbuf, size_t outbuf_len);
|
||||
* @allow_abs_path: true to allow absolute paths
|
||||
* @bootfile: Bootfile whose directory loaded files are relative to, NULL if
|
||||
* none
|
||||
* @return 0 if OK, -ENOMEM if out of memory
|
||||
* @return 0 if OK, -ENOMEM if out of memory, -E2BIG if bootfile is larger than
|
||||
* MAX_TFTP_PATH_LEN bytes
|
||||
*/
|
||||
int pxe_setup_ctx(struct pxe_context *ctx, struct cmd_tbl *cmdtp,
|
||||
pxe_getfile_func getfile, void *userdata,
|
||||
|
Loading…
Reference in New Issue
Block a user