Hi Aaron,
On Mon, Aug 04, 2025 at 11:24:41PM -0400, Aaron Merey wrote:
> Signed-off-by: Aaron Merey <[email protected]>
> ---
> v2: Some rewording. Also remove comment about elf_rand affecting
> subsequent calls to elf_next. I will post a patch that prevents this
> behavior.
Thanks, that patch is now in. commit cc459edf "elf_getarhdr: Replace
per-archive Elf_Arhdr storage with per-member storage"
> doc/Makefile.am | 1 +
> doc/elf_rand.3 | 71 +++++++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 72 insertions(+)
> create mode 100644 doc/elf_rand.3
>
> diff --git a/doc/Makefile.am b/doc/Makefile.am
> index 103f9d05..f1e074f9 100644
> --- a/doc/Makefile.am
> +++ b/doc/Makefile.am
> @@ -83,6 +83,7 @@ notrans_dist_man3_MANS= elf32_checksum.3 \
> elf_newdata.3 \
> elf_newscn.3 \
> elf_nextscn.3 \
> + elf_rand.3 \
> elf_rawfile.3 \
> elf_scnshndx.3 \
> elf_strptr.3 \
OK.
> diff --git a/doc/elf_rand.3 b/doc/elf_rand.3
> new file mode 100644
> index 00000000..5c07a920
> --- /dev/null
> +++ b/doc/elf_rand.3
> @@ -0,0 +1,71 @@
> +.TH ELF_RAND 3 2025-06-30 "Libelf" "Libelf Programmer's Manual"
> +
> +.SH NAME
> +elf_rand - Set the offset for the next archive member in an ELF file.
> +
> +.SH SYNOPSIS
> +.nf
> +#include <libelf.h>
> +
> +.BI "size_t elf_rand(Elf *" elf ", size_t " offset ");"
> +.fi
OK.
> +.SH DESCRIPTION
> +The
> +.BR elf_rand ()
> +function sets the current archive member offset for the ELF archive
> descriptor
> +.I elf
> +to
> +.IR offset .
> +
> +This function is only valid when
> +.I elf
> +refers to an archive descriptor (i.e., its kind is
> +.BR ELF_K_AR ).
> +
> +Archive member offsets can be acquired from the
> +.I Elf_Arsym
> +array returned by
> +.BR elf_getarsym (3).
> +
> +If the archive header at the given offset cannot be parsed or validated,
> +then 0 is returned.
OK.
> +.SH PARAMETERS
> +.TP
> +.I elf
> +A pointer to an ELF archive descriptor.
> +
> +.TP
> +.I offset
> +A byte offset to the archive header, indicating the desired member position.
OK.
> +.SH RETURN VALUE
> +Returns the input
> +.I offset
> +if successful. Returns 0 if
> +.I elf
> +is NULL, is not an archive descriptor, or if an error occurs while reading
> the member at
> +.IR offset .
OK.
> +.SH SEE ALSO
> +.BR elf_getarsym (3),
> +.BR elf_next (3),
> +.BR libelf (3),
> +.BR elf (5)
OK.
> +.SH ATTRIBUTES
> +.TS
> +allbox;
> +lbx lb lb
> +l l l.
> +Interface Attribute Value
> +T{
> +.na
> +.nh
> +.BR elf_rand ()
> +T} Thread safety MT-Safe
> +.TE
> +
> +.SH REPORTING BUGS
> +Report bugs to <[email protected]> or
> https://sourceware.org/bugzilla/.
OK.
Thanks,
Mark