Re: [PATCH v7 00/10] livepatch: klp-convert tool
From: Alexey Dobriyan
Date: Thu Mar 30 2023 - 08:10:11 EST
Joe Lawrence wrote:
> +static int update_strtab(struct elf *elf)
> +{
>
> + buf = malloc(new_size);
> + if (!buf) {
> + WARN("malloc failed");
> + return -1;
> + }
> + memcpy(buf, (void *)strtab->data, orig_size);
This code is called realloc(). :-)
> +static int write_file(struct elf *elf, const char *file)
> +{
>
> + fd = creat(file, 0664);
> + e = elf_begin(fd, ELF_C_WRITE, NULL);
elf_end() doesn't close descriptor, so there is potentially corrupted
data. There is no unlink() call if writes fail as well.
> +void elf_close(struct elf *elf)
> +{
> +
> + if (elf->fd > 0)
> + close(elf->fd);
Techically, it is "fd >= 0".
> +filechk_klp_map = \
> + echo "klp-convert-symbol-data.0.1"; \
> + echo "*vmlinux"; \
> + $(NM) -f posix vmlinux | cut -d\ -f1; \
> + sort $(MODORDER) $(MODULES_LIVEPATCH) | \
This probably should be "LC_ALL=C sort" for speed and reproducibility (?).