]> git.ipfire.org Git - thirdparty/elfutils.git/blame - libelf/ChangeLog
funcretval-struct
[thirdparty/elfutils.git] / libelf / ChangeLog
CommitLineData
549c1d4b
C
12023-09-09 Yanglin Xun <xunyanglins@gmail.com>
2
3 * libelf.h: Fix typo in comment
4
708179f0
YT
52023-04-01 Youling Tang <tangyouling@loongson.cn>
6
7 * elf.h: Update from glibc.
8
0a52a7dc
MW
92023-03-03 Mark Wielaard <mark@klomp.org>
10
11 * libelf.h: Define ELFCOMPRESS_ZSTD if undefined.
12 (elf_compress): Document ELFCOMPRESS_ZSTD compression type.
13
924bee3c
MW
142023-02-20 Mark Wielaard <mark@klomp.org>
15
16 * gnuhash_xlate.h (elf_cvt_gnuhash): memmove any left over bytes.
17
86347d80
MW
182022-11-30 Mark Wielaard <mark@klomp.org>
19
20 * elf.h: Update from glibc.
21
59217981
MW
222022-10-28 Mark Wielaard <mark@klomp.org>
23
24 * elf.h: Update from glibc.
25
10f01dad
YL
262022-10-21 Yonggang Luo <luoyonggang@gmail.com>
27
28 * libelf_crc32.c: Remove LIB_SYSTEM_H define.
29
0e18267a
YL
302022-09-20 Yonggang Luo <luoyonggang@gmail.com>
31
32 * elf32_checksum.c: Use BYTE_ORDER, LITTLE_ENDIAN and BIG_ENDIAN.
33 * elf32_xlatetof.c: Likewise.
34 * elf_getarsym.c: Likewise.
35
a6b2ec76
YL
362022-10-16 Yonggang Luo <luoyonggang@gmail.com>
37
38 * common.h: Remove ar.h, byteswap.h and endian.h.
39 * elf32_checksum.c: Remove endian.h.
40 * elf32_getphdr.c: Remove unistd.h and system.h.
41 * elf32_getshdr.c: Remove unistd.h.h and system.h.
42 * elf32_updatefile.c: Remove unistd.h, sys/mman.h and system.h.
43 * elf32_updatenull.c: Remove endian.h and system.h.
44 * elf32_xlatetof.c: Remove endian.h.
45 * elf32_xlatetom.c: Likewise.
46 * elf_begin.c: Remove unistd.h, sys/mman.h and system.h.
47 * elf_cntl.c: Remove unistd.h.
48 * elf_compress.c: Remove system.h and unistd.h.
49 * elf_end.c: Remove sys.mman.h.
50 * elf_getarsym.c: Remove byteswap.h, endian.h, unistd.h and
51 system.h.
52 * elf_getdata.c: Remove unistd.h and system.h.
53 * elf_getdata_rawchunk.c: Remove unistd.h and system.h.
54 * elf_getshdrstrndx.c: Likewise.
55 * elf_readall.c: Likewise.
56 * elf_update.c: Remove unistd.h and sys/mman.h.
57 * gelf_xlate.c: Remove byteswap.h.
58 * libelfP.h: Add system.h.
59 * nlist.c: Remove unistd.h.
60
ee188125
MW
612022-08-28 Mark Wielaard <mark@klomp.org>
62
63 * elf_begin.c (__libelf_next_arhdr_wrlock): Add OCT_FIELD macro,
64 like INT_FIELD but use strtol with octal base 8. Use for ar_mode.
65
de209d23
AS
662022-08-08 Andreas Schwab <schwab@suse.de>
67
68 * elf.h: Update from glibc.
69
3cf38698
MW
702022-04-24 Mark Wielaard <mark@klomp.org>
71
72 * elf_update.c (write_file): Check HAVE_MREMAP.
73
8db84997
MW
742022-04-01 Mark Wielaard <mark@klomp.org>
75
76 * libelfP.h (struct Elf_Data_Chunk): Add an int64_t offset field.
77 * elf_getdata_rawchunk.c (elf_getdata_rawchunk): Check whether the
78 requested chunk, offset, size and type, was already handed out.
79 Set new Elf_Data_Chunk offset field.
80
e3e2ae06
MW
812022-03-29 Mark Wielaard <mark@klomp.org>
82
83 * gelf_xlate.c (START): Define and use sz variable.
84 (END): Use sz variable to decide whether to do a memmove.
85
31d551ae
MW
862022-03-24 Mark Wielaard <mark@klomp.org>
87
88 * elf.h: Update from glibc.
89
4b77a768
MW
902022-03-22 Mark Wielaard <mark@klomp.org>
91
92 * elf_getdata.c (__libelf_type_aligns): ELF_T_GNUHASH has different
93 alignment for ELFCLASS32 and ELFCLASS64.
94
2785ba7a
MW
952022-03-20 Mark Wielaard <mark@klomp.org>
96
97 * version_xlate.h (elf_cvt_Verdef): Make sure aux_offset and
98 def_offset don't overflow.
99 (elf_cvt_Verneed): Make sure aux_offset and need_offset don't
100 overflow.
101
0346d5fd
MW
1022022-03-18 Mark Wielaard <mark@klomp.org>
103
104 * version_xlate.h (elf_cvt_Verdef): Check alignment of def_offset
105 and aux_offset.
106 (elf_cvt_Verneed): Check alignment of need_offset and aux_offset.
107
ed42e7cf
MW
1082022-03-17 Mark Wielaard <mark@klomp.org>
109
110 * elf_begin.c (read_long_names): Check ar_size starts with a digit.
111
1b09e673
MW
1122022-03-17 Mark Wielaard <mark@klomp.org>
113
114 * elf_begin.c (get_shnum): Take offset into account for Shdr
115 alignment check.
116
aab1cc4c
MW
1172021-12-19 Mark Wielaard <mark@klomp.org>
118
119 * elf_begin.c (file_read_elf): Cast ehdr to uintptr_t before e_shoff
120 alignment check. Only set shdr state when scncnt is larger than zero.
121
b16ff819
MW
1222021-12-16 Mark Wielaard <mark@klomp.org>
123
124 * libelfP.h (NOTE_ALIGN4): And with negative unsigned long.
125 (NOTE_ALIGN8): Likewise.
126
8303a9cf
MW
1272021-12-15 Mark Wielaard <mark@klomp.org>
128
129 * elf_begin.c (get_shnum): Use offsetof to get field of unaligned
130 struct.
131
e0942709
DL
1322021-09-06 Dmitry V. Levin <ldv@altlinux.org>
133
134 * common.h (allocate_elf): Remove cast of calloc return value.
135 * elf_newdata.c (elf_newdata): Likewise.
136 * elf_getscn.c (elf_getscn): Remove casts of calloc return values.
137 * elf_newscn.c (elf_newscn): Likewise.
138 * elf32_updatefile.c (__elfw2): Remove casts of malloc return values.
139 * elf_getdata.c (convert_data): Likewise.
140 (__libelf_set_rawdata_wrlock): Remove cast of malloc return value.
141 * elf_begin.c (read_long_names): Remove cast of malloc return value.
142 * elf_readall.c (__libelf_readall): Likewise.
143 * elf_getarsym.c (elf_getarsym): Remove casts of malloc and realloc
144 return values.
145
0aed4315
MW
1462021-07-19 Mark Wielaard <mark@klomp.org>
147
148 * elf_strptr.c (validate_str): Check last char is zero first before
149 calling memrchr on the whole block.
150
b3601167
AH
1512021-06-09 Andrei Homescu <ah@immunant.com>
152
153 * elf_getdata.c: Fix d_align for sections where alignment is larger
154 than offset.
155
fd119923
MW
1562020-12-12 Mark Wielaard <mark@klomp.org>
157
158 * elf.h: Update from glibc.
159
0a5defb6
DL
1602020-12-16 Dmitry V. Levin <ldv@altlinux.org>
161
162 * libelfP.h (_): Remove.
163
d21692c7
MW
1642020-12-15 Mark Wielaard <mark@klomp.org>
165
166 * elf_begin.c (get_shnum): Make sure the full Ehdr is available.
167
d178e376
DL
1682020-12-12 Dmitry V. Levin <ldv@altlinux.org>
169
170 * common.h: Fix spelling typo in comment.
171 * gelf.h: Likewise.
172 * libelf.h: Likewise.
173 * libelfP.h: Likewise.
174 * elf32_checksum.c (elfw2): Likewise.
175 * elf_begin.c (dup_elf, write_file): Likewise.
176 * elf_compress.c (__libelf_compress): Likewise.
177 * elf_compress_gnu.c (elf_compress_gnu): Likewise.
178
ff38afe7
DL
1792020-12-11 Dmitry V. Levin <ldv@altlinux.org>
180
181 * Makefile.am (GCC_INCLUDE): Remove.
182
4f587a12
DL
1832020-12-09 Dmitry V. Levin <ldv@altlinux.org>
184
185 * Makefile.am (noinst_PROGRAMS): Rename to noinst_DATA.
186 (libelf_so_SOURCES): Remove.
187 (CLEANFILES): Add libelf.so.
188
2f02e815
DL
1892020-11-30 Dmitry V. Levin <ldv@altlinux.org>
190
191 * Makefile.am (libelf.so$(EXEEXT)): Drop $(EXEEXT) suffix.
192
d2da036d
MW
1932020-11-06 Mark Wielaard <mark@klomp.org>
194
195 * elf-knowledge.h (SH_ENTSIZE_HASH): Update comment.
196
f31e45b1
MW
1972020-11-01 Mark Wielaard <mark@klomp.org>
198
199 * elf_strptr.c (elf_strptr): Check shdr is not NULL.
200
86cedeba
MW
2012020-11-01 Mark Wielaard <mark@klomp.org>
202
203 * elf_getphdrnum.c (__elf_getphdrnum_rdlock): Set *dst to zero on
204 error.
205
f2272dbe
MW
2062020-11-01 Mark Wielaard <mark@klomp.org>
207
208 * libelfP.h (__libelf_data_type): Take an GElf_Ehdr instead of an
209 Elf handle.
210 * elf_getdata.c (__libelf_data_type): Likewise. And check ehdr
211 directly instead of fetching a new one.
212 (__libelf_set_rawdata_wrlock): Fetch Ehdr, report an error when that
213 fails, otherwise call __libelf_data_type.
214
56f64c94
MW
2152020-10-28 Mark Wielaard <mark@klomp.org>
216
217 * elf.h: Update from glibc.
218
1d8b10e0
MW
2192020-08-28 Mark Wielaard <mark@klomp.org>
220
221 * elf.h: Update from glibc.
222
55c5c9a5
MW
2232020-08-19 Mark Wielaard <mark@klomp.org>
224
225 * elf32_updatenull.c (updatenull_wrlock): Fixup the sh_addralign
226 of an SHF_COMPRESSED section if necessary.
227
39f22a76
MW
2282020-06-04 Mark Wielaard <mark@klomp.org>
229
230 * elf.h: Update from glibc.
231
24d65694
MW
2322020-05-08 Mark Wielaard <mark@klomp.org>
233
234 * elf_strptr.c (elf_strptr): Check shdr is not NULL.
235
59587b33
MW
2362020-05-08 Mark Wielaard <mark@klomp.org>
237
238 * elf_getdata.c (__libelf_set_rawdata_wrlock): Check
239 __gelf_getehdr_rdlock return value.
240
a5d73b3e
MW
2412020-04-25 Mark Wielaard <mark@klomp.org>
242
243 * elf_compress.c (__libelf_compress): Remove free (out_buf).
244
ee2dd07f
OS
2452020-03-18 Omar Sandoval <osandov@fb.com>
246
247 * elf_getphdrnum.c (__elf_getphdrnum_rdlock): Call
248 __elf{32,64}_getshdr_rdlock if the shdr is not cached.
249
2092865a
MM
2502019-03-20 Matthias Maennich <maennich@google.com>
251
252 * elf_compress.c (__libelf_compress): Always call deflate_cleanup
253 in failure path. Call deflateEnd only once.
254 (__libelf_decompress): Call inflateEnd only once.
255
a46200f6
MW
2562019-06-18 Mark Wielaard <mark@klomp.org>
257
258 * common.h (allocate_elf): Use int64_t instead of off_t for offset.
259 * elf32_newphdr.c (newphdr): Document why Elf32/64_Word is correct.
260 * elf32_updatefile.c (fill): Use int64_t instead of off_t for pos.
261 (updatefile): Define last_offset, shdr_offset and scn_start as
262 int64_t instead of off_t.
263 * elf32_updatenull.c: Define Elf32_SizeWord and Elf64_SizeWord.
264 (updatenull_wrlock): Return int64_t instead of off_t. Define size,
265 sh_entsize, sh_align and sh_size as SizeWords. Define offset as
266 int64_t. Cast data->d_off to SizeWord instead of GElf_Word. Drop
267 size GElf_Word cast. Cast offset to SizeWord instead of GElf_Word
268 when comparing with sh_size.
269 * elf_begin.c (get_shnum): Define offset as int64_t instead of
270 off_t. Document why use GElf_Word is correct.
271 (file_read_elf): Define offset as int64_t instead of off_t.
272 (__libelf_read_mmaped_file): Likewise.
273 (read_unmmaped_file): Likewise.
274 (read_file): Likewise.
275 * elf_getaroff.c (elf_getaroff): Return int64_t.
276 * elf_getbase.c (elf_getbase): Likewise.
277 * elf_getdata_rawchunk.c (elf_getdata_rawchunk): Define offset as
278 int64_t instead of off_t.
279 * elf_update.c (write_file): Return int64_t instead of off_t,
280 define size as int64_t instead of off_t.
281 (elf_update): Likewise.
282 * libelfP.h (struct Elf): Define start_offset, sizestr_offset and
283 offset as int64_t.
284 (__libelf_read_mmaped_file): Define offset as int64_t.
285 (__elf32_updatenull_wrlock): Return int64_t.
286 (__elf64_updatenull_wrlock): Return int64_t.
287
d7193bd7
MW
2882019-05-12 Mark Wielaard <mark@klomp.org>
289
290 * elf32_updatenull.c (updatenull_wrlock): Mark shdr_flags dirty if
291 either offset or size changed.
292
4628b0ea
MW
2932019-05-01 Mark Wielaard <mark@klomp.org>
294
295 * gelf_getnote.c (gelf_getnote): Check n_namesz doesn't overflow
296 offset.
297
1d8f5d30
MW
2982019-04-30 Mark Wielaard <mark@klomp.org>
299
300 * note_xlate.h (elf_cvt_note): Indicate we only translated the note
301 header if we ran out of data by updating len, src and dest.
302
9c82942a
MH
3032019-04-01 Mao Han <han_mao@c-sky.com>
304
305 * elf.h: Update from glibc.
306
6bd060a2
MW
3072019-03-07 Mark Wielaard <mark@klomp.org>
308
309 * elf32_updatefile.c (updatemmap): Use posix_memalign instead of
310 aligned_alloc.
311
75e147d0
MW
3122019-03-06 Mark Wielaard <mark@klomp.org>
313
314 * elf32_updatefile.c (updatemmap): Free scns before returning
315 allocation failure.
316
e56a0969
MW
3172019-02-24 Mark Wielaard <mark@klomp.org>
318
319 * gelf_xlate.c (__elf_xfctstof): Remove alias.
320 * libelfP.h (__elf_xfctstof): Remove definition.
321
be8080bd
MW
3222019-02-24 Mark Wielaard <mark@klomp.org>
323
324 * elf32_fsize.c (local_strong_alias): Remove definition.
325 (msize): Remove alias.
326 * libelfP.h (__elf32_msize): Remove definition.
327 (__elf64_msize): Likewise.
328
b9d16789
MW
3292019-02-21 Mark Wielaard <mark@klomp.org>
330
331 * common.h (determine_kind): Only accept EV_CURRENT.
332 * elf32_fsize.c (fsize): Just check version is EV_CURRENT.
333 Use __libelf_type_size without version dimension.
334 * elf32_updatefile.c (updatemmap): Define fctp from __elf_xfctstom
335 without version dimension.
336 (updatefile): Likewise.
337 * elf32_updatenull.c (default_ehdr): Check e_version is EV_CURRENT.
338 (updatenull_wrlock): Check d_version is EV_CURRENT.
339 (elf32_xlatetof): Likewise. And get recsize without version
340 dimension from __elf_xfctstom.
341 (elf32_xlatetom): Likewise.
342 * elf_begin.c (elf_begin): Check __libelf_version is EV_CURRENT.
343 * elf_compress.c (__libelf_reset_rawdata): Set d_version to
344 EV_CURRENT.
345 * elf_getdata.c (shtype_map): Remove version dimension.
346 (__libelf_type_aligns): Likewise.
347 (__libelf_data_type): Use shtype_map without version dimension.
348 (convert_data): Remove unused version argument. Get fp from
349 __elf_xfctstom without version dimensions.
350 (__libelf_set_data_list_rdlock): Call convert_data without version.
351 * elf_getdata_rawchunk.c (elf_getdata_rawchunk): Call __elfcfctstom
352 conversion function without version dimensions. Set d_version to
353 EV_CURRENT.
354 * elf_newdata.c (elf_newdata): Set d_version to EV_CURRENT.
355 * elf_version.c (__libelf_version_initialized): Removed.
356 (__libelf_version): Initialized to EV_NONE.
357 (elf_version): Always return EV_CURRENT for EV_NONE version.
358 Only accept (and return) EV_CURRENT as version.
359 * gelf_fsize.c (__libelf_type_sizes): Remove version dimension.
360 (gelf_fsize): Only accept EV_CURRENT as version.
361 Use __libelf_type_sizes without version dimension.
362 * gelf_xlate.c (__elf_xftstom): Remove version dimensions.
363 * libelfP.h (__elf_xfctstom): Defined without version dimensions.
364 (__elf_xfctstof): Likewise.
365 (__libelf_type_sizes): Define without version dimension.
366 (elf_typesize): Define using __libelf_type_sizes without version
367 dimension.
368 (__libelf_version_initialized): Remove definition.
369 (__libelf_version): Add definition.
370 (LIBELF_EV_IDX): Removed define.
371 (__libelf_type_aligns): Remove version dimension.
372 * nlist.c (nlist): Call elf_version unconditionally.
373
ff7fe986
MW
3742019-02-19 Mark Wielaard <mark@klomp.org>
375
376 * elf_compress.c (do_deflate_cleanup): Remove ei_data argument,
377 check cdatap is not NULL before calling free.
378 (deflate_cleanup): Add cdata as argument.
379 (__libelf_compress): Also check whether the d_size is not zero
380 before converting data. Call deflate_cleanup with an extra
381 argument depending on whether there is converted data to free.
382 Always allocate allocate at least one byte for buf_out.
383
e32380ec
MW
3842019-02-14 Mark Wielaard <mark@klomp.org>
385
386 * elf_begin.c (read_long_names): Make sure ar_size is properly
387 terminated. Sanity check len early if we can.
388
b63007ed
MW
3892019-01-18 Mark Wielaard <mark@klomp.org>
390
391 * Makefile.am (INSTALL_ELFH): Add elf.h to include_HEADERS when
392 defined, otherwise (the default) add elf.h to noinst_HEADERS.
393
e65d91d2
MW
3942019-01-16 Mark Wielaard <mark@klomp.org>
395
396 * note_xlate.h (elf_cvt_note): Check n_namesz and n_descsz don't
397 overflow note_len into note header.
398
5f9fab9e
MW
3992018-11-17 Mark Wielaard <mark@klomp.org>
400
401 * elf32_updatefile.c (updatemmap): Make sure to call convert
402 function on a properly aligned destination.
403
a01938d5
MW
4042018-11-16 Mark Wielaard <mark@klomp.org>
405
406 * libebl.h (__elf32_msize): Mark with const attribute.
407 (__elf64_msize): Likewise.
408
cf10453f
MW
4092018-11-13 Mark Wielaard <mark@klomp.org>
410
411 * elf_getdata.c (__libelf_set_rawdata_wrlock): Explicitly set the
412 alignment of SHF_COMPRESSED data to the alignment of ELF_T_CHDR.
413 * elf_compress.c (elf_compress): After compression set sh_addralign
414 to the alignment of ELF_T_CHDR.
415
d3e62667
MW
4162018-11-09 Mark Wielaard <mark@klomp.org>
417
418 * elf_compress_gnu.c (elf_compress_gnu): Use elf_getdata.
419
72e30c2e
MW
4202018-11-12 Mark Wielaard <mark@klomp.org>
421
422 * elf-knowledge.c (ELF_NOTE_GNU_BUILD_ATTRIBUTE_PREFIX): New define.
423 (NT_GNU_BUILD_ATTRIBUTE_{OPEN,FUNC}): Likewise.
424 (GNU_BUILD_ATTRIBUTE_TYPE_{NUMERIC,STRING,BOOL_TRUE,BOOL_FALSE}):
425 Likewise.
426 (GNU_BUILD_ATTRIBUTE_{VERSION,STACK_PROT,RELRO,STACK_SIZE,TOOL,ABI,
427 PIC,SHORT_ENUM}): Likewise.
428
4789e0fb
MW
4292018-11-09 Mark Wielaard <mark@klomp.org>
430
431 * elf_compress.c (__libelf_reset_rawdata): Make rawdata change
432 explicit by calling __libelf_set_data_list.
433 * elf_getdata.c (convert_data): Don't convert if type is ELF_T_BYTE
434 even if endianness is different.
435
5199e158
MW
4362018-10-18 Mark Wielaard <mark@klomp.org>
437
438 * libelf.h (Elf_Type): Add ELF_T_NHDR8.
439 * libelfP.h (__libelf_data_type): Add align argument.
440 (NOTE_ALIGN): Split into...
441 (NOTE_ALIGN4): ... and ...
442 (NOTE_ALIGN8): this.
443 * elf32_xlatetom.c (xlatetom): Recognize both ELF_T_NHDR and
444 ELF_T_NHDR8.
445 * elf_compress.c (elf_compress): Pass zdata_align to
446 __libelf_data_type.
447 * elf_compress_gnu.c (elf_compress_gnu): Pass sh_addralign to
448 __libelf_data_type.
449 * elf_getdata.c (shtype_map): Add ELF_T_NHDR8.
450 (__libelf_data_type): Take align as extra argument, use it to
451 determine Elf_Type.
452 (__libelf_set_rawdata_wrlock): Recognize ELF_T_NHDR8. Pass align to
453 __libelf_data_type.
454 * gelf_fsize.c (__libelf_type_sizes): Add ELF_T_NHDR8.
455 * gelf_getnote.c (gelf_getnote): Use Elf_Type of Elf_Data to calculate
456 padding.
457 * gelf_xlate.c (__elf_xfctstom): Set ELF_T_NHDR to elf_cvt_note4,
458 add ELF_T_NHDR8.
459 * note_xlate.h (elf_cvt_note): Take nhdr8 argument and use it to
460 determine padding.
461 (elf_cvt_note4): New function.
462 (elf_cvt_note8): Likewise.
463
34534cc1
MW
4642018-09-13 Mark Wielaard <mark@klomp.org>
465
466 * elf32_updatefile.c (updatemmap): Use shnum, not ehdr->e_shnum.
467 * elf_getscn.c (elf_getscn): Create section zero if it is requested,
468 but doesn't exist yet.
469
fb0457f4
MW
4702018-09-12 Mark Wielaard <mark@klomp.org>
471
472 * elf32_updatefile.c (updatemmap): Use memmove, not memcpy.
473 * elf_update.c (write_file): Try to mremap if file needs to be
474 extended.
475
56b18521
MW
4762018-08-18 Mark Wielaard <mark@klomp.org>
477
478 * libelf.h (elf_compress_gnu): Add documentation about
479 interaction between SHF_COMPRESED and elf_compress_gnu.
480 * elf_compress_gnu.c (elf_compress_gnu): Return error if section
481 sh_flags has SHF_COMPRESSED set.
482
7df31382
MW
4832018-07-27 Mark Wielaard <mark@klomp.org>
484
485 * libelf.h (elf_getshdrstrndx): Fix documentation.
486 (elf_getshstrndx): Likewise.
487
dd813335
MW
4882018-06-19 Mark Wielaard <mark@klomp.org>
489
490 * libelfP.h (__libelf_type_align): Remove !ALLOW_UNALIGNED guard.
491 * elf_getdata.c (__libelf_type_aligns): Likewise.
492 (convert_data): Remove ALLOW_UNALIGNED check.
493 * elf_getdata_rawchunk.c (elf_getdata_rawchunk): Likewise.
494
3e4f78a7
MW
4952018-06-21 Mark Wielaard <mark@klomp.org>
496
497 * elf.h: Update from glibc.
498
9b29c2a1
AS
4992018-04-19 Andreas Schwab <schwab@suse.de>
500
501 * elf.h: Update from glibc.
502
88f3d2da
MW
5032018-02-16 Mark Wielaard <mark@klomp.org>
504
505 * elf.h: Update from glibc.
506
555e15eb
JW
5072018-02-09 Joshua Watt <JPEWhacker@gmail.com>
508
509 * elf32_updatenull.c (updatenull_wrlock): Use FALLTHROUGH macro
510 instead of comment.
511 * elf_begin.c (read_unmmaped_file): Likewise.
512 (elf_begin): Likewise.
513 * elf_cntl.c (elf_cntl): Likewise.
514
4f977868
MW
5152017-10-04 Mark Wielaard <mark@klomp.org>
516
517 * elf_begin.c (file_read_elf): Skip sanity checking e_shoff if scncnt
518 is zero, we won't use it then.
519
fef9e11b
MW
5202017-10-04 Mark Wielaard <mark@klomp.org>
521
522 * libelfP.h: Add ELF_E_INVALID_ELF to error values enum.
523 * elf_error.c (ELF_E_INVALID_ELF_IDX): New define. Use it as value
524 for ELF_E_INVALID_ELF in msgidx.
525 * elf_getshdrstrndx.c (elf_getshdrstrndx): Distinquish between pread
526 failing and not having enough data.
527 * elf_begin.c (get_shnum): Likewise. Explicitly set libelf errno on
528 too large value.
529 (file_read_elf): Make sure to always set libelf errno when returning
530 NULL. Distinquish between i/o file and elf data errors.
531
17d7194d
UH
5322017-08-18 Ulf Hermann <ulf.hermann@qt.io>
533
534 * gelf_xlate.c: Use attribute_packed.
535
1127470a
UH
5362017-04-27 Ulf Hermann <ulf.hermann@qt.io>
537
538 * libelfP.h: Use attribute_hidden.
539
07737584
UH
5402017-04-27 Ulf Hermann <ulf.hermann@qt.io>
541
542 * Makefile.am: Use fpic_CFLAGS and dso_LDFLAGS.
543
6d2e7e71
MW
5442017-08-15 Mark Wielaard <mark@klomp.org>
545
546 * elf.h: Update from glibc. Add new powerpc note descriptors.
547
55a471f5
GR
5482017-07-19 Gustavo Romero <gromero@linux.vnet.ibm.com>
549
550 * elf.h: Add known type in notes segment descriptor for HTM SPRs.
551
8abf0b5b
UH
5522017-02-17 Ulf hermann <ulf.hermann@qt.io>
553
554 * Makefile.am: Add libelf_so_DEPS, which include libeu.a,
555 libelf_so_LIBS.
556 (libelf_so_LDLIBS): Add $(libelf_so_DEPS).
557 (libelf.so$(EXEEXT): Use $(libelf_so_LIBS), require libelf.map
558 from the right directory.
559
575198c2
UH
5602017-04-20 Ulf Hermann <ulf.hermann@qt.io>
561
562 * libelfP.h: Don't include config.h.
563
fd9e7345
UH
5642017-04-20 Ulf Hermann <ulf.hermann@qt.io>
565
566 * elf_begin.c: Use F_GETFD rather than F_GETFL.
567
c73a00d8
UH
5682017-04-20 Ulf Hermann <ulf.hermann@qt.io>
569
570 * libelf.h: Define macros for various function attributes and use
571 them.
572
a6c6fb4a
UH
5732017-04-20 Ulf Hermann <ulf.hermann@qt.io>
574
575 * elf_update.c: Set ELF_F_MMAPPED flag if we mmap from elf_update.
576
7114c513
MW
5772017-04-19 Mark Wielaard <mark@klomp.org>
578
579 * elf_getarsym.c (elf_getarsym): Initialize n to zero.
580
a3bf8f08
MW
5812017-03-27 Mark Wielaard <mark@klomp.org>
582
583 * elf32_updatefile.c (updatemmap): Always update last_positition.
584 (updatefile): Likewise.
585
8dcc4bf7
MW
5862017-03-24 Mark Wielaard <mark@klomp.org>
587
588 * elf_compress.c (__libelf_decompress): Check insane compression
589 ratios before trying to allocate output buffer.
590
0d0f8450
AO
5912016-10-11 Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp>
592 Mark Wielaard <mjw@redhat.com>
593
594 * gelf.h (gelf_newehdr): Change return type to void *.
595 (gelf_newphdr): Likewise.
596 * gelf_newehdr.c (gelf_newehdr): Likewise.
597 * gelf_newphdr.c (gelf_newphdr): Likewise.
598
09ec02ec
MW
5992016-10-21 Mark Wielaard <mjw@redhat.com>
600
601 * elf_getdata.c (__libelf_set_rawdata_wrlock): Sanity check
602 offset and size before trying to malloc and read data.
603
191000fd
MW
6042016-10-26 Mark Wielaard <mjw@redhat.com>
605
606 * elf_begin.c (read_file): Always set maxsize when parent == NULL.
607
6082016-10-11 Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp>
a24d52ac
AO
609
610 * elf_getarsym.c (elf_getarsym): Open code rawmemchr when not
611 available.
612 * elf_strptr.c: Include stdbool.h.
613 (validate_str): New function.
614 (elf_strptr): Use validate_str instead of memrchr.
615
191000fd 6162016-10-11 Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp>
60b2bf1b
AO
617
618 * elf32_updatefile.c: Remove sys/param.h include.
619 * elf32_updatenull.c: Likewise. Add system.h include.
620 * elf_begin.c: Remove sys/param.h.
621 * elf_compress: Likewise. Add system.h include.
622 (MAX): Remove definition.
623
e93f2d80
MW
6242016-08-07 Mark Wielaard <mjw@redhat.com>
625
626 * elf_compress.c (__libelf_reset_rawdata): Check scn->flags and
627 free rawdata_base when malloced. Set ELF_F_MALLOCED for scn->flags.
628 * elf_end.c (elf_end): Check scn->flags and free rawdata_base if
629 malloced.
630 * libelfP.h (struct Elf_Scn): Document flags ELF_F_MALLOCED usage.
631
e6ca75dd
MW
6322016-07-06 Mark Wielaard <mjw@redhat.com>
633
634 * elf-knowledge.h (SH_FLAGS_COMBINE): Removed.
635 (SH_FLAGS_IMPORTANT): Likewise.
636
8b5f017d
MW
6372016-07-06 Mark Wielaard <mjw@redhat.com>
638
639 * elf32_updatenull.c (updatenull_wrlock): Ignore e_type when
640 updating phdrs.
641 * elf_getphdrnum.c (__elf_getphdrnum_chk_rdlock): Only do sanity
642 checking if phdrs haven't been read in yet.
643
96e140f6
JO
6442016-06-24 John Ogness <john.ogness@linutronix.de>
645
646 * elf32_updatenull.c (updatenull_wrlock): Find first section.
647 * elf_nextscn.c (elf_nextscn): When scn is NULL start from 0th
648 section.
649
4c746f25
RH
6502016-06-28 Richard Henderson <rth@redhat.com>
651
652 * elf.h: Update from glibc. Add lots of new EM_* definitions.
653
f7f45ed5
MW
6542016-04-14 Mark Wielaard <mjw@redhat.com>
655
656 * elf_compress.c (__libelf_compress): Free out_buf if deflateInit
657 fails.
658
7249c8e4
MW
6592016-02-13 Mark Wielaard <mjw@redhat.com>
660
661 * elf32_updatefile.c (updatemmap): Free scns when out of memory.
662
2f289fa9
MW
6632016-01-28 Mark Wielaard <mjw@redhat.com>
664
665 * elf.h: Update from glibc. Add new i386 and x86_64 relocations.
666
1899704b
MW
6672016-02-12 Mark Wielaard <mjw@redhat.com>
668
669 * elf.h: Update from glibc. Add NT_ARM_SYSTEM_CALL.
670
22035605
MW
6712016-02-04 Mark Wielaard <mjw@redhat.com>
672
673 * elf_getdata.c (__libelf_set_rawdata_wrlock): Don't adjust align
674 for SHT_NOBITS sections.
675
203f0a3e
CHH
6762016-01-22 Chih-Hung Hsieh <chh@google.com>
677
678 * elf_compress.c (__libelf_compress): Move nested function
679 'do_deflate_cleanup' to file scope to compile with clang.
680 * elf_strptr.c (elf_strptr): Move nested function 'get_zdata'
681 to file scope to compile with clang.
682
344ca077
MW
6832016-01-13 Mark Wielaard <mjw@redhat.com>
684
685 * libelf.h: Check SHF_COMPRESSED is defined. If not define it and the
686 associated ELF compression types/defines.
687
519c13c9
MW
6882015-11-26 Mark Wielaard <mjw@redhat.com>
689
690 * elf_compress.c (__libelf_decompress_elf): New function, extracted
691 from...
692 (elf_compress): here. Check zdata_base use __libelf_decompress_elf.
693 * elf_strptr.c (elf_strptr): If SHF_COMPRESSED check, uncompress and
694 use zdata.
695 * libelfP.h (struct Elf_Scn): Add zdata_size and zdata_align.
696 (__libelf_decompress_elf): New internal function definition.
697
272018bb
MW
6982015-10-21 Mark Wielaard <mjw@redhat.com>
699
700 * Makefile.am (libelf_a_SOURCES): Add elf_compress.c and
701 elf_compress_gnu.c.
702 * elf_compress.c: New file.
703 * elf_compress_gnu.c: Likewise.
704 * elf_begin.c (file_read_elf): Make a writable copy of the shdrs
705 for ELF_C_READ_MMAP.
706 * elf_end.c (elf_end): Free zdata_base.
707 * elf_error.c: Add ELF_E_ALREADY_COMPRESSED,
708 ELF_E_UNKNOWN_COMPRESSION_TYPE, ELF_E_COMPRESS_ERROR and
709 ELF_E_DECOMPRESS_ERROR.
710 * elf_data.c (__libelf_data_type): New internal function extracted
711 from convert_data.
712 (convert_data): Handle SHF_COMPRESSED.
713 * elf32_updatenull.c (updatenull_wrlock): Check sh_entsize against
714 uncompressed section data size if SHF_COMPRESSED.
715 * elf32_getshdr.c (load_shdr_wrlock): Adjust assert to account for
716 ELF_C_READ_MMAP.
717 * libelf.h: Define elf_compress and elf_compress_gnu.
718 * libelf.map (ELFUTILS_1.7): Add elf_compress and elf_compress_gnu.
719 * libelfP.h: Add ELF_E_ALREADY_COMPRESSED,
720 ELF_E_UNKNOWN_COMPRESSION_TYPE, ELF_E_COMPRESS_ERROR and
721 ELF_E_DECOMPRESS_ERROR. Define __libelf_data_type.
722 (__libelf_compress): New internal function definition.
723 (__libelf_decompress): Likewise.
724 (__libelf_reset_rawdata): Likewise.
725 (__libelf_data_type): Likewise.
726 (struct Elf_Scn): Add zdata_base.
727
5ddb50af
MW
7282015-11-19 Mark Wielaard <mjw@redhat.com>
729
730 * Makefile.am (libelf_a_SOURCES): Add elf32_getchdr.c,
731 elf64_getchdr.c and gelf_getchdr.c.
732 (noinst_HEADERS): Add chdr_xlate.h.
733 * abstract.h: Define Chdr32 and Chdr64.
734 * chdr_xlate.h: New file.
735 * elf32_getchdr.c: New file.
736 * elf64_getchdr.c: New file.
737 * elf_error.c: Add ELF_E_NOT_COMPRESSED, ELF_E_INVALID_SECTION_TYPE
738 and ELF_E_INVALID_SECTION_FLAGS.
739 * elf_getdata.c (__libelf_set_rawdata_wrlock): Set d_type to
740 ELF_T_CHDR for SHF_COMPRESSED sections.
741 * exttypes.h: Add Chdr32 and Chdr64.
742 * gelf.h (GElf_Chdr): New typedef.
743 (gelf_getchdr): New function definition.
744 * gelf_fsize.c (__libelf_type_sizes): Add ELF_T_CHDR.
745 * gelf_getchdr.c: New file.
746 * gelf_xlate.c (__elf_xfctstom): Add ELF_T_CHDR cvt_chdr.
747 * gelf_xlate.h: Add Chdr.
748 * libelf.h (Elf_Type): Add ELF_T_CHDR.
749 (elf32_getchdr): New function definition.
750 (elf64_getchdr): Likewise.
751 * libelf.map (ELFUTILS_1.7): New sections add elf32_getchdr,
752 elf64_getchdr and gelf_getchdr.
753 * libelfP.h: Add ELF_E_NOT_COMPRESSED, ELF_E_INVALID_SECTION_TYPE
754 and ELF_E_INVALID_SECTION_FLAGS.
755
528cb45f
MW
7562015-10-16 Mark Wielaard <mjw@redhat.com>
757
758 * Makefile.am (libelf_so_LDLIBS): Add -lz.
759
5eb3e901
MW
7602015-10-14 Mark Wielaard <mjw@redhat.com>
761
762 * elf.h: Update from glibc. Add section compression constants and
763 structures.
764
1ed7195e
JM
7652015-10-20 Jose E. Marchesi <jose.marchesi@oracle.com>
766
767 * elf_begin.c (get_shnum): Elf64_Shdr.sh_size is an Elf64_Xword.
768 Fix the size argument to pread_retry.
769
239d8591
CHH
7702015-10-13 Chih-Hung Hsieh <chh@google.com>
771
772 * elf32_updatefile.c (__elfw2(LIBELFBITS,updatemmap)): Move nested
773 function 'fill_mmap' to file scope.
774 * elf_begin.c (elf_begin): Move nested function 'lock_dup_elf'
775 to file scope.
776
b1d0b0fc
JS
7772015-10-09 Josh Stone <jistone@redhat.com>
778
779 * libelf.h: Replace loff_t with int64_t throughout.
780
ae1e85ea
MW
7812015-10-05 Mark Wielaard <mjw@redhat.com>
782
783 * elf_update.c (write_file): Only use posix_fallocate when using
784 mmap. Only report failure when errno is ENOSPC.
785
3425454a
JS
7862015-10-09 Josh Stone <jistone@redhat.com>
787
788 * libelfP.h (struct Elf): Replace off64_t with off_t.
789 * elf_getdata_rawchunk.c (elf_getdata_rawchunk): Likewise.
790
7eff36d5
CHH
7912015-10-05 Chih-Hung Hsieh <chh@google.com>
792
793 * elf_getarsym.c (elf_getarsym): Do not use
794 union of variable length arrays.
795
daee4714
JS
7962015-10-05 Josh Stone <jistone@redhat.com>
797
798 * Makefile.am (libelf.so): Add AM_V_CCLD and AM_V_at silencers.
799
6a20e20e
JM
8002015-09-24 Jose E. Marchesi <jose.marchesi@oracle.com>
801
802 * Makefile.am (AM_CFLAGS): Use -fPIC instead of -fpic to avoid
803 relocation overflows in some platforms.
804
3adda3ce
MW
8052015-09-29 Mark Wielaard <mjw@redhat.com>
806
807 * elf32_updatenull.c (default_ehdr): Set e_version when EV_NONE.
808 (updatenull_wrlock): Always set e_shentsize.
809
d8698e55
MW
8102015-09-23 Mark Wielaard <mjw@redhat.com>
811
812 * elf32_getehdr.c (getehdr_wrlock): Mark as internal_function.
813 * elf32_getshdr.c (getshdr_rdlock): Likewise.
814 (getshdr_wrlock): Likewise.
815 * elf_error.c (__libelf_seterrno): Likewise.
816 * elf_getphdrnum.c (__elf_getphdrnum_rdlock): Likewise.
817 (__elf_getphdrnum_chk_rdlock): Likewise.
818 * elf_getshdrnum.c (__elf_getphdrnum_rdlock): Likewise.
819 (__elf_getphdrnum_chk_rdlock): Likewise.
820 * elf_getshdrnum.c (__elf_getshdrnum_rdlock): Likewise.
821 * elf_readall.c (__libelf_readall): Likewise.
822 * gelf_getehdr.c (__gelf_getehdr_rdlock): Likewise.
823
1ccdfb68
MW
8242015-09-22 Mark Wielaard <mjw@redhat.com>
825
826 * *.c: Remove old-style function definitions.
827
e260d79d
MW
8282015-06-22 Mark Wielaard <mjw@redhat.com>
829
830 * dl-hash.h: Update from glibc.
831
3c57452a
MW
8322015-06-18 Mark Wielaard <mjw@redhat.com>
833
834 * elf32_updatefile.c (updatefile): Always free shdr_data and scns
835 when allocated on failure paths.
836
aec69c7f
MW
8372015-06-18 Mark Wielaard <mjw@redhat.com>
838
839 * nlist.c (nlist): Check symscn shdr exists before use.
840
0d01165e
MW
8412015-06-16 Mark Wielaard <mjw@redhat.com>
842
843 * elf_update.c (write_file): Always also use ftruncate before
844 posix_fallocate to make sure file has the right size.
845
ede1d9d8
MW
8462015-06-04 Mark Wielaard <mjw@redhat.com>
847
848 * elf_getdata.c (__libelf_type_aligns): Add entries for ELF_T_EHDR,
849 ELF_T_OFF, ELF_T_PHDR, ELF_T_SHDR, ELF_T_SWORD, ELF_T_XWORD,
850 ELF_T_SXWORD, ELF_T_GNUHASH, ELF_T_AUXV.
851 * elf_getdata_rawchunk.c (elf_getdata_rawchunk): Check alignment
852 of rawdata against requested type.
853
9a9f7f66
MW
8542015-06-02 Mark Wielaard <mjw@redhat.com>
855
856 * elf_getdata.c (convert_data): Make sure source data is properly
857 aligned for type before calling actual conversion function.
858
560aa98b
MW
8592015-06-04 Mark Wielaard <mjw@redhat.com>
860
861 * elf_begin.c (get_shnum): Check alignment of Shdr, not Ehdr before
862 direct access.
863
b9fd0eee
MW
8642015-06-02 Mark Wielaard <mjw@redhat.com>
865
866 * elf_begin.c (file_read_elf): Split checks for ehdr and shdr
867 alignment, drop phdr alignment check.
868
96f6c995
MW
8692015-05-31 Mark Wielaard <mjw@redhat.com>
870
871 * elf32_getshdr.c (load_shdr_wrlock): Allocate shdrs with malloc,
872 not alloca and free after conversion when a copy needs to be made.
873
2ec51824
MW
8742015-05-31 Mark Wielaard <mjw@redhat.com>
875
876 * elf32_getphdr.c (getphdr_wrlock): Allocate phdrs with malloc, not
877 alloca and free after conversion when a copy needs to be made.
878
f78e8640
MW
8792015-05-31 Mark Wielaard <mjw@redhat.com>
880
881 * elf_getarsym.c (elf_getarsym): Allocate temporary file_date with
882 malloc, not alloca also in !ALLOW_UNALIGNED case.
883
fc9b7940
MW
8842015-05-30 Mark Wielaard <mjw@redhat.com>
885
886 * gelf_xlate.c (elf_cvt_Byte): Only call memmove with non-zero size.
887
b4ad3c4b
MW
8882015-05-30 Mark Wielaard <mjw@redhat.com>
889
890 * elf32_updatefile.c (updatemmap): Only call mempcpy and update
891 last_position when d_size is non-zero.
892
e6261005
MW
8932015-05-17 Mark Wielaard <mjw@redhat.com>
894
895 * elf32_updatefile.c (updatefile): Allocate shdr_data and scns
896 with malloc, not alloca. Free after writing section headers.
897
2e5df0c3
MW
8982015-05-16 Mark Wielaard <mjw@redhat.com>
899
900 * elf32_updatefile.c (updatemmap): Allocate temporary shdr storage
901 with malloc, not alloca. Free after writing section header.
902
bfb9a752
MW
9032015-05-16 Mark Wielaard <mjw@redhat.com>
904
905 * elf_getarsym.c (elf_getarsym): Allocate temporary file_date with
906 malloc, not alloca. Call free after out.
907
77482c4b
MW
9082015-05-14 Mark Wielaard <mjw@redhat.com>
909
910 * elf_update.c (write_file): Use posix_fallocate instead of
911 ftruncate to extend file if necessary.
912
c2297eab
MW
9132015-05-13 Mark Wielaard <mjw@redhat.com>
914
915 * elf32_updatenull.c (default_ehdr): If e_phnum is zero then set
916 e_phoff also to zero.
917
c0748eff
MW
9182015-05-12 Mark Wielaard <mjw@redhat.com>
919
920 * elf32_updatenull.c (updatenull_wrlock): Check that sh_addralign
921 is a powerof2.
922 * elf_getdata.c (__libelf_set_rawdata_wrlock): Clamp large d_aligns
923 to the elf image offset.
924
458027d2
MW
9252015-05-12 Mark Wielaard <mjw@redhat.com>
926
927 * elf32_newphdr.c (newphdr): Call __libelf_seterrno with
928 ELF_E_INVALID_INDEX before failing. Check whether section zero shdr
929 actually exists if we need to put extended phnum in section zero.
930
a2b964c7
MW
9312015-05-08 Mark Wielaard <mjw@redhat.com>
932
933 * nlist.c (nlist): Call gelf_fsize with EV_CURRENT.
934
59c1f123
MW
9352015-01-03 Mark Wielaard <mjw@redhat.com>
936
937 * version_xlate.h (elf_cvt_Verdef): Use memmove to copy src to dest.
938 (elf_cvt_Verneed): Likewise.
939
bcefec51
MW
9402015-03-28 Mark Wielaard <mjw@redhat.com>
941
942 * elf.h: Update from glibc.
943
5370bb0a
MW
9442015-03-23 Mark Wielaard <mjw@redhat.com>
945
946 * elf32_updatenull.c (updatenull_wrlock): Don't extend size with
947 SHT_NOBITS sh_offset.
948
6c9f1ec5
MW
9492015-02-18 Mark Wielaard <mjw@redhat.com>
950
951 * libelfP.h (__libelf_set_data_list_rdlock): Make internal_function.
952
6f5934c1
JK
9532015-02-07 Jan Kratochvil <jan.kratochvil@redhat.com>
954
955 * elf32_updatenull.c (__elfw2(LIBELFBITS,updatenull_wrlock)): Consider
956 sh_addralign 0 as 1.
957
9d481b29
MW
9582015-01-22 Mark Wielaard <mjw@redhat.com>
959
960 * elf_strptr (elf_strptr): Make sure returned string is NUL
961 terminated.
962
710ca878
MW
9632015-01-21 Mark Wielaard <mjw@redhat.com>
964
965 * elf_strptr.c (elf_strptr): Check data_list_rear == NULL instead
966 of rawdata_base != NULL before using rawdata directly.
967
b543cdd9
MW
9682015-01-20 Mark Wielaard <mjw@redhat.com>
969
970 * libelfP.h (__elf_strptr_internal): New function declaration.
971 * elf_getdata.c (__libelf_set_data_list_rdlock): New internal
972 function extracted from...
973 (__elf_getdata_rdlock): ... here.
974 * elf_newdata.c (elf_newdata): Check scn->rawdata_base and update
975 datalist if necessary.
976
058ae7b4
MW
9772015-01-20 Mark Wielaard <mjw@redhat.com>
978
979 * elf_strptr.c (elf_strptr): Call __elf[32|64]_getshdr_rdlock if
980 necessary.
981
cc62e378
MW
9822014-12-30 Mark Wielaard <mjw@redhat.com>
983
984 * elf_getphdrnum.c (__elf_getphdrnum_chk_rdlock): New function.
985 (elf_getphdrnum): Call __elf_getphdrnum_chk_rdlock.
986 * gelf_getphdr (gelf_getphdr): Call __elf_getphdrnum_chk_rdlock
987 and always check ndx against phnum.
988 * libelfP.h (__elf_getphdrnum_chk_rdlock): New internal function.
989
68588d62
MW
9902014-12-25 Mark Wielaard <mjw@redhat.com>
991
992 * elf_begin.c (__libelf_next_arhdr_wrlock): ar_size cannot be
993 negative. Include start_offset in maxsize.
994
147018e7
AC
9952014-12-28 Alexander Cherepanov <cherepan@mccme.ru>
996
997 * elf_begin.c (read_long_names): Don't miss '/' right after
998 another '/'. Fixes a dir traversal vuln in ar extraction.
999
898ed261
UD
10002014-12-18 Ulrich Drepper <drepper@gmail.com>
1001
1002 * Makefile.am: Suppress output of textrel_check command.
1003
55f847d6
MW
10042014-12-16 Mark Wielaard <mjw@redhat.com>
1005
1006 * elf_begin.c (read_long_names): Make sure long_names len fits
1007 in mapped ELF file.
1008
4bb122a8
MW
10092014-12-15 Mark Wielaard <mjw@redhat.com>
1010
1011 * elf_getarsym.c (elf_getarsym): Check index_size doesn't overflow.
1012
9520242b
MW
10132014-12-15 Mark Wielaard <mjw@redhat.com>
1014
1015 * elf_begin.c (read_long_names): Clear any garbage left in the
1016 name table.
1017
65a556fc
MW
10182014-12-11 Mark Wielaard <mjw@redhat.com>
1019
1020 * elf_begin.c (file_read_elf): Correct ELF64 section offset check.
1021
7d63628b
MW
10222014-12-11 Mark Wielaard <mjw@redhat.com>
1023
1024 * elf_begin.c (read_long_names): Check for offset overflow.
1025 (__libelf_next_arhdr_wrlock): Likewise. Sanity check the ar_size.
1026 Don't allow it to go beyond end of file.
1027
16f08ebd
MW
10282014-12-09 Mark Wielaard <mjw@redhat.com>
1029
1030 * elf_getarsym.c (elf_getarsym): Make sure n * w doesn't overflow.
1031
805ec833
MW
10322014-11-27 Mark Wielaard <mjw@redhat.com>
1033
1034 * Makefile.am (libelf.so): Use textrel_check.
1035
f62658f7
MW
10362014-11-23 Mark Wielaard <mjw@redhat.com>
1037
1038 * elf_getdata_rawchunk.c (elf_getdata_rawchunk): Change signed
1039 overflow check to unsigned.
1040
51abc748
MW
10412014-11-23 Mark Wielaard <mjw@redhat.com>
1042
1043 * note_xlate.h (elf_cvt_note): Copy over any leftover data if
1044 src != dest. The data is probably part of truncated name/desc.
1045
2deeb7c5
MW
10462014-11-22 Mark Wielaard <mjw@redhat.com>
1047
1048 * elf_getphdrnum.c (elf_getphdrnum): Sanity check the
1049 __elf_getphdrnum_rdlock result.
1050
9b5fa6b5
MW
10512014-11-18 Mark Wielaard <mjw@redhat.com>
1052
1053 * version_xlate.h (elf_cvt_Verdef): Check for overflow.
1054 (elf_cvt_Verneed): Likewise.
1055
5c1a45c2
MW
10562014-11-17 Mark Wielaard <mjw@redhat.com>
1057
1058 * elf-knowledge.h (SECTION_STRIP_P): Check name is not NULL.
1059
babcdeff
MW
10602014-11-16 Mark Wielaard <mjw@redhat.com>
1061
1062 * elf_getshdrstrndx.c: Check there are section headers before
1063 handling SHN_XINDEX.
1064
436275ed
MW
10652014-11-16 Mark Wielaard <mjw@redhat.com>
1066
1067 * elf32_getphdr.c (getphdr_wrlock): Check e_phoff isn't zero.
1068 Check for too many pheaders.
1069 * elf_getphdrnum.c (__elf_getphdrnum_rdlock): Check section zero
1070 actually exists before handling PN_XNUM.
1071
8ea90b7a
MW
10722014-11-16 Mark Wielaard <mjw@redhat.com>
1073
1074 * gelf_getnote.c (gelf_getnote): Check padding overflow.
1075
502430c7
MW
10762014-11-16 Mark Wielaard <mjw@redhat.com>
1077
1078 * elf_getdata.c (__libelf_set_rawdata_wrlock): Declare offset, size
1079 and align as Elf64_Off and Elf64_Xword not size_t.
1080
df2fe503
MW
10812014-11-14 Mark Wielaard <mjw@redhat.com>
1082
1083 * gelf_getnote.c (gelf_getnote): Check offset overflow.
1084
c50ddfca
MW
10852014-11-13 Mark Wielaard <mjw@redhat.com>
1086
1087 * elf_getdata.c (__libelf_set_rawdata_wrlock): Fix unsigned overflow
1088 check.
1089
babd5b6d
MW
10902014-11-08 Mark Wielaard <mjw@redhat.com>
1091
1092 * elf_begin.c (__libelf_next_arhdr_wrlock): Use mempcpy not __mempcpy.
1093
b635b8dc
MW
10942014-11-07 Mark Wielaard <mjw@redhat.com>
1095
1096 * elf_begin.c (file_read_elf): Correct sh_size check.
1097 * elf_getdata.c (__libelf_set_rawdata_wrlock): Check for unsigned
1098 overflow.
1099
237188e4
PM
11002014-09-10 Petr Machata <pmachata@redhat.com>
1101
1102 * elf_begin (read_unmmaped_file): Call __libelf_seterrno if the
1103 file is unreadable.
1104
16e2d351
MW
11052014-07-07 Mark Wielaard <mjw@redhat.com>
1106
1107 * elf.h: Update from glibc.
1108
32324794
MW
11092014-04-13 Mark Wielaard <mjw@redhat.com>
1110
1111 * Makefile.am: Remove !MUDFLAP conditions.
1112 * elf_begin.c (read_file): Don't clear use_mmap when _MUDFLAP is
1113 defined.
1114 * elf_update.c (write_file): Remove _MUDFLAP condition.
1115
a9039623
JJ
11162014-01-17 Jakub Jelinek <jakub@redhat.com>
1117 Roland McGrath <roland@redhat.com>
1118
1119 * libelfP.h (INVALID_NDX): Define.
1120 * gelf_getdyn.c (gelf_getdyn): Use it. Remove ndx < 0 test if any.
1121 * gelf_getlib.c (gelf_getlib): Likewise.
1122 * gelf_getmove.c (gelf_getmove): Likewise.
1123 * gelf_getrel.c (gelf_getrel): Likewise.
1124 * gelf_getrela.c (gelf_getrela): Likewise.
1125 * gelf_getsym.c (gelf_getsym): Likewise.
1126 * gelf_getsyminfo.c (gelf_getsyminfo): Likewise.
1127 * gelf_getsymshndx.c (gelf_getsymshndx): Likewise.
1128 * gelf_getversym.c (gelf_getversym): Likewise.
1129 * gelf_update_dyn.c (gelf_update_dyn): Likewise.
1130 * gelf_update_lib.c (gelf_update_lib): Likewise.
1131 * gelf_update_move.c (gelf_update_move): Likewise.
1132 * gelf_update_rel.c (gelf_update_rel): Likewise.
1133 * gelf_update_rela.c (gelf_update_rela): Likewise.
1134 * gelf_update_sym.c (gelf_update_sym): Likewise.
1135 * gelf_update_syminfo.c (gelf_update_syminfo): Likewise.
1136 * gelf_update_symshndx.c (gelf_update_symshndx): Likewise.
1137 * gelf_update_versym.c (gelf_update_versym): Likewise.
1138
720383c5
JJ
11392014-01-17 Jakub Jelinek <jakub@redhat.com>
1140
1141 * elf32_getphdr.c (elfw2(LIBELFBITS,getphdr)): Check if program header
1142 table fits into object's bounds.
1143 * elf_getshdrstrndx.c (elf_getshstrndx): Add elf->start_offset to
1144 elf->map_address. Check if first section header fits into object's
1145 bounds.
1146 * elf32_getshdr.c (elfw2(LIBELFBITS,getshdr)):
1147 Check if section header table fits into object's bounds.
1148 * elf_begin.c (get_shnum): Ensure section headers fits into
1149 object's bounds.
1150 (file_read_elf): Make sure scncnt is small enough to allocate both
1151 ElfXX_Shdr and Elf_Scn array. Make sure section and program header
1152 tables fit into object's bounds. Avoid memory leak on failure.
1153 * elf_newscn.c (elf_newscn): Check for overflow.
1154 * elf32_updatefile.c (__elfw2(LIBELFBITS,updatemmap)): Likewise.
1155 (__elfw2(LIBELFBITS,updatefile)): Likewise.
1156 * elf32_newphdr.c (elfw2(LIBELFBITS,newphdr)): Likewise.
1157 * elf_getarsym.c (elf_getarsym): Likewise.
1158
3ba50403
MW
11592013-11-08 Mark Wielaard <mjw@redhat.com>
1160
1161 * elf32_updatefile.c (elfXX_updatemmap): Only memcpy ehdr when not
1162 already directly mmapped.
1163
88ad5ddb
MW
11642013-11-05 Mark Wielaard <mjw@redhat.com>
1165
1166 * elf32_updatefile.c (elfXX_updatefile): Copy all section headers
1167 if elf->flags dirty.
1168
a45c8043
MF
11692013-11-01 Michael Forney <mforney@mforney.org>
1170
1171 * Makefile.am: Use READELF.
1172
acf12679
PM
11732013-10-01 Petr Machata <pmachata@redhat.com>
1174
1175 * elf.h: Update from glibc.
1176
49a1a381
PM
11772013-06-17 Petr Machata <pmachata@redhat.com>
1178
1179 * elf.h: Update from glibc.
1180
e0b4385b
NK
11812013-08-28 Namhyung Kim <namhyung@gmail.com>
1182
1183 * gelf.h (gelf_fsize): Fix typo in comment.
1184
d0509d49
MW
11852013-08-28 Mark Wielaard <mjw@redhat.com>
1186
1187 * gelf_getauxv.c (gelf_getauxv): Add missing whitespace.
1188
4f017daa
MW
11892013-08-27 Mark Wielaard <mjw@redhat.com>
1190
1191 * gelf_getauxv.c (gelf_getauxv): Remove unnecessary casts to char *.
1192
617f8ea8
KR
11932013-08-25 Kurt Roeckx <kurt@roeckx.be>
1194
1195 * gelf_getauxv.c (gelf_getauxv): Use memcpy instead of pointer
1196 dereference to avoid alignment problems.
1197
99d9db00
RM
11982013-01-07 Roland McGrath <roland@hack.frob.com>
1199
6722a667
RM
1200 * elf_getarsym.c (elf_getarsym): Copy FILE_DATA into stack space if it
1201 would be unaligned and !ALLOW_UNALIGNED.
1202
99d9db00
RM
1203 * elf_getarsym.c (read_number_entries): Use memcpy instead of pointer
1204 dereference so as not to assume the field is naturally aligned.
1205
9312cb5e
PM
12062012-09-17 Petr Machata <pmachata@redhat.com>
1207
1208 * elf.h: Update from glibc.
1209
d83f1324
RM
12102012-08-16 Roland McGrath <roland@hack.frob.com>
1211
1212 * elf.h: Update from glibc.
1213
2105022c
MW
12142012-08-14 Mark Wielaard <mjw@redhat.com>
1215
1216 * elf32_checksum.c (ebl_debugscn_p): Removed unused define and
1217 confusing outdated comment.
1218
e1873141
PM
12192012-08-01 Petr Machata <pmachata@redhat.com>
1220
1221 * elf_getarsym (read_number_entries): New function.
1222 (elf_getarsym): Handle 64-bit symbol table, stored in special
1223 entry named "/SYM64/".
1224 * elf_begin.c (__libelf_next_arhdr_wrlock): Don't reject archive
1225 because it contains 64-bit symbol table.
1226
030f626f
MW
12272012-07-19 Mark Wielaard <mjw@redhat.com>
1228
1229 * elf32_getshdr.c (load_shdr_wrlock): Add elf->flags & ELF_F_MALLOCED
1230 to asserts.
1231
bc0f7450
PM
12322012-07-17 Petr Machata <pmachata@redhat.com>
1233
1234 * elf32_xlatetom.c (elfw2(LIBELFBITS, xlatetom)): Do not check for
1235 integer number of records in case of ELF_T_NHDR.
1236
191d1f0b
MW
12372012-04-02 Mark Wielaard <mjw@redhat.com>
1238
1239 * elf32_offscn.c: Do not match SHT_NOBITS sections at OFFSET unless
1240 there are no nonempty sections at that offset.
1241
8e8f0be5
RM
12422012-03-21 Roland McGrath <roland@hack.frob.com>
1243
1244 * elf-knowledge.h (SECTION_STRIP_P): Remove < SHT_NUM check.
1245
49550161
MW
12462011-02-26 Mark Wielaard <mjw@redhat.com>
1247
1248 * elf_end.c (elf_end): Call rwlock_unlock before rwlock_fini.
1249
f1ccc410
JK
12502011-01-05 Jan Kratochvil <jan.kratochvil@redhat.com>
1251
1252 * elf_getdata_rawchunk.c (elf_getdata_rawchunk): Fix off64_t overflow
1253 when MAXIMUM_SIZE == ~0.
1254
b088f216
RM
12552010-08-18 Roland McGrath <roland@redhat.com>
1256
1257 * gelf_fsize.c (__libelf_type_sizes): Add entries for ELF_T_LIB
1258 and ELF_T_GNUHASH.
1259 Reported by Mark Hatle <mark.hatle@windriver.com>.
1260
1261 * exttypes.h: Add cases for ElfNN_Lib.
1262 Reported by Mark Hatle <mark.hatle@windriver.com>.
1263
d7635784
UD
12642010-06-14 Ulrich Drepper <drepper@redhat.com>
1265
1266 * gelf_update_shdr.c: Implicitly set ELF_F_DIRTY bit.
1267 * gelf_update_phdr.c: Likewise.
1268 * gelf_update_ehdr.c: Likewise.
1269
957072c1
RM
12702010-04-14 Roland McGrath <roland@redhat.com>
1271
1272 * elf32_getphdr.c: Check for e_phoff/size outside the file bounds.
1273 * elf_begin.c (file_read_elf): Don't set .phdr here.
1274
f35dfa89 12752010-04-13 Roland McGrath <roland@redhat.com>
d80f0b2c 1276
f35dfa89 1277 * elf.h: Update from glibc.
d80f0b2c 1278
3b495d8e
RM
12792010-04-06 Roland McGrath <roland@redhat.com>
1280
1281 * elf_error.c (ELF_E_FD_MISMATCH_IDX): Avoid nonobvious abbreviation
1282 in error message.
1283
d7b12c62
PM
12842010-04-01 Petr Machata <pmachata@redhat.com>
1285
1286 * elf_getdata.c (__elf_getdata_rdlock): Initialize data.s for data
1287 that do not need a conversion.
1288
331a186d
RM
12892010-03-11 Roland McGrath <roland@redhat.com>
1290
1291 * elf.h: Update from glibc.
1292
f7a9a9e4
UD
12932010-03-04 Ulrich Drepper <drepper@redhat.com>
1294
1295 * elf.h: Update from glibc.
1296
429502fd
RM
12972010-02-17 Roland McGrath <roland@redhat.com>
1298
1299 * elf_begin.c (file_read_elf): Leave section rawdata_base and
1300 data_base pointers null when [sh_offset,sh_size) points outside
1301 the mapped file.
1302
22359e26
RM
13032010-02-15 Roland McGrath <roland@redhat.com>
1304
1305 * Makefile.am: Use config/eu.am for common stuff.
1306
6fd3cd10
RM
13072010-01-07 Roland McGrath <roland@redhat.com>
1308
1309 * elf32_getphdr.c: Use __elf_getphdrnum_rdlock.
1310 * gelf_getphdr.c: Likewise.
1311 * gelf_update_phdr.c: Likewise.
1312 * elf32_updatefile.c (__elf32_updatemmap, __elf32_updatefile): Likewise.
1313 * elf32_updatenull.c (__elf32_updatenull_wrlock): Likewise.
1314 * elf32_newphdr.c: Clear section 0's sh_info when resetting e_phnum.
1315 If COUNT is too large, use store PN_XNUM instead and set sh_info.
1316 * elf_begin.c (file_read_elf): Always allocate space we can use later
1317 for section 0 if doing RDWR.
1318
1319 * elf_getphdrnum.c: New file.
1320 * Makefile.am (libelf_a_SOURCES): Add it.
1321 * libelf.h: Declare elf_getphdrnum.
1322 * libelfP.h: Declare __elf_getphdrnum_rdlock.
1323 * libelf.map (ELFUTILS_1.6): New set, add elf_getphdrnum.
1324
1325 * elf.h: Update from glibc.
1326
2cfe33f4
LR
13272009-10-23 Lubomir Rintel <lkundrak@v3.sk>
1328
1329 * elf32_updatefile.c (fill_mmap): When starting past shdr_end, start
1330 filling from section start, not shdr_end.
1331
0c6db7e3
RM
13322009-11-10 Roland McGrath <roland@redhat.com>
1333
1334 * elf_readall.c (__libelf_readall): Fetch file size if not yet known.
1335
c6f5e920
MW
13362009-11-06 Mark Wielaard <mjw@redhat.com>
1337
1338 * elf_next.c (elf_next): Mark the archive header as unusable when
1339 there is no next ar element.
1340
e2fedf4a
MW
13412009-08-12 Mark Wielaard <mjw@redhat.com>
1342
1343 * Makefile.am (libelf.so): Use -Wl,-z,defs not -defs.
1344
3117a85d
UD
13452009-07-26 Ulrich Drepper <drepper@redhat.com>
1346
1347 * elf.h: Update from glibc.
1348
fa1d4447
LR
13492009-07-21 Ulrich Drepper <drepper@redhat.com>
1350
1351 * elf32_updatefile.c (__elfXX_updatemmap): Fix handling of gaps between
1352 sections. Patch by Lubomir Rintel <lkundrak@v3.sk>.
1353
9dedfccc
RM
13542009-07-08 Roland McGrath <roland@redhat.com>
1355
1356 * libelfP.h (struct Elf): Remove unused ar.has_index field.
1357 Reorder various members for optimal packing.
1358
70c442ca
UD
13592009-07-08 Ulrich Drepper <drepper@redhat.com>
1360
1361 * elf.h: Update from glibc.
1362
f1894931
UD
13632009-06-13 Ulrich Drepper <drepper@redhat.com>
1364
1365 * Makefile.am (libelf_a_SOURCES): Replace elf_getshnum.c and
1366 elf_getshstrndx.c with elf_getshdrnum.c and elf_getshdrstrndx.c.
1367 * elf_getshnum.c: Renamed to...
1368 * elf_getshdrnum.c: ...this. Rename function and add old name as
1369 alias. Likewise for internal functions with derived names.
1370 * elf_getshstrndx.c: Renamed to...
1371 * elf_getshdrstrndx.c: ...this. Rename function and add old name as
1372 alias. Likewise for internal functions with derived names.
1373 * libelf.h: Add prototypes for new names. Make old names as
1374 deprecated.
1375 * libelfP.h: Rename internal function prototypes.
1376 * libelf.map: Export for names.
1377 * elf32_checksum.c: Don't use deprecated functions.
1378 * elf32_getshdr.c: Likewise.
1379
b47d290a
UD
13802009-06-01 Ulrich Drepper <drepper@redhat.com>
1381
1382 * elf.h: Update from glibc.
1383
eb9ba470
RM
13842009-04-14 Roland McGrath <roland@redhat.com>
1385
1386 * elf.h: Update from glibc.
1387
d5ff6678
RM
13882009-04-01 Roland McGrath <roland@redhat.com>
1389
1390 * elf.h: Update from glibc.
1391
18fb6398
UD
13922009-02-10 Ulrich Drepper <drepper@redhat.com>
1393
fe31538f 1394 * elf32_updatefile.c (updatefile): For the zeroth section we still
18fb6398
UD
1395 have to copy the section header.
1396
d11522f0
UD
13972009-02-01 Ulrich Drepper <drepper@redhat.com>
1398
1399 * elf_strptr.c: Add comment re possible problem.
1400
119f4acb
UD
14012009-01-26 Ulrich Drepper <drepper@redhat.com>
1402
1403 * elf32_updatenull.c (updatenull_wrlock): Fix comment of
1404 ELF_F_LAYOUT behaviour re section header table.
1405
5ece8096
UD
14062009-01-22 Ulrich Drepper <drepper@redhat.com>
1407
1408 * elf32_updatefile.c (__elfXX_updatemmap): Fill the gap between
1409 sections even if only the section at the start of the gap has been
1410 changed.
1411 (__elfXX_updatefile): Likewise.
1412
07ba31fc
UD
14132009-01-21 Ulrich Drepper <drepper@redhat.com>
1414
5ece8096 1415 * elf32_updatefile.c (__elfXX_updatemmap): Skip most of the loop to
23fba758
UD
1416 handle sections for NOBITS sections.
1417 (elfXX_updatefile): Likewise.
1418
5ece8096 1419 * elf32_updatefile.c (__elfXX_updatemmap): When skipping non-NOBITS
07ba31fc
UD
1420 sections we haven't loaded, update last_position based on scn_start,
1421 not based on old value. Don't run the loop for the dummy section 0.
1422 (elfXX_updatefile): Don't run the loop for the dummy section 0.
1423
7e678fa3
UD
14242009-01-10 Ulrich Drepper <drepper@redhat.com>
1425
43aafe64
UD
1426 * libelfP.h (_): We only have one translation domain, elfutils.
1427
7e678fa3
UD
1428 * Makefile.am: Use USE_LOCKS instead of USE_TLS.
1429 * elf_error.c: Always use __thread. Remove all !USE_TLS code.
1430
315ebd52
RM
14312009-01-04 Roland McGrath <roland@redhat.com>
1432
1433 * note_xlate.h (elf_cvt_note): Don't examine a size too small to
1434 container a note header.
1435
970a1663
RM
14362008-12-11 Roland McGrath <roland@redhat.com>
1437
75b07c00
RM
1438 * elf32_updatefile.c (__elfw2(LIBELFBITS,updatemmap)): Handle
1439 placement offset going backwards, for out-of-order or overlapping
1440 (bogus) sh_offset layouts. It's a dumb use, but should not crash.
1441 (__elfw2(LIBELFBITS,updatefile)): Likewise.
1442 Fixes RHBZ#476136.
1443
970a1663
RM
1444 * libelf.h (Elf_Data): Whitespace fix.
1445
d3533280
RM
14462008-12-10 Roland McGrath <roland@redhat.com>
1447
1448 * elf_getarhdr.c (elf_getarhdr): Fix missing rename in last change.
1449
02f66452
UD
14502008-10-22 Petr Machata <pmachata@redhat.com>
1451
1452 * elf_rawfile.c (elf_rawfile): Lock around elf-> references.
1453
14542008-10-21 Petr Machata <pmachata@redhat.com>
1455
1456 * libelfP.h: Rename getehdr_rdlock to getehdr_wrlock.
1457 * elf32_getehdr.c (getehdr_rdlock): Move the code to new function
1458 getehdr_impl and make it a wrapper. Rename to getehdr_wrlock.
1459 (getehdr_impl): Guard elf->class init with wrlock.
1460 (getehdr): Also make it a wrapper of getehdr_impl.
1461 * elf32_updatenull.c (updatenull_wrlock): Call getehdr_wrlock.
1462
14632008-10-20 Petr Machata <pmachata@redhat.com>
1464
1465 * elf_getdata_rawchunk.c (elf_getdata_rawchunk): Lock around the
1466 code that reads mutable elf state. Relock to write lock to chain
1467 the new chunk on the elf rawchunks list.
1468
14692008-10-20 Petr Machata <pmachata@redhat.com>
1470
1471 * elf32_checksum.c (checksum): Place a lock around the code that
1472 processes data. Make it wrlock if the code needs to xlate the
1473 data before processing.
1474
14752008-10-16 Petr Machata <pmachata@redhat.com>
1476
1477 * elf_begin.c
1478 (__libelf_next_arhdr): Rename to __libelf_next_arhdr_wrlock.
1479 (dup_elf): Adjust the call.
1480 (elf_begin): New local function lock_dup_elf. Relocks the elf if
1481 necessary before calling dup. Call this instead of dup_elf.
1482 * elf_getarhdr.c
1483 (elf_getarhdr): Lock before calling __libelf_next_arhdr_wrlock.
1484 * elf_next.c (elf_next): Likewise.
1485 * elf_rand.c (elf_rand): Likewise.
1486
14872008-10-14 Petr Machata <pmachata@redhat.com>
1488
1489 * elf_getdata.c (__elf_getdata_rdlock): Lock before converting.
1490
a845f68b
RM
14912008-11-26 Roland McGrath <roland@redhat.com>
1492
1493 * elf.h: Update from glibc.
1494
14952008-10-06 Roland McGrath <roland@redhat.com>
1496
1497 * elf_getarhdr.c (elf_getarhdr): Return NULL when passed NULL.
1498
9cf28e4f
RM
14992008-08-27 Roland McGrath <roland@redhat.com>
1500
1501 * elf_begin.c (get_shnum): Avoid misaligned reads for matching endian.
1502
1503 * libelfP.h [!ALLOW_UNALIGNED] (__libelf_type_align): Fix CLASS index.
1504
b4d6f0f8 15052008-08-25 Roland McGrath <roland@redhat.com>
f729d778 1506
b4d6f0f8
RM
1507 * Makefile.am (libelf_so_LDLIBS): New variable.
1508 (libelf.so): Use it in the link.
f729d778 1509
b4d6f0f8 15102008-08-21 Petr Machata <pmachata@redhat.com>
d56e232f 1511
b4d6f0f8
RM
1512 * elf_getdata.c, libelfP.h
1513 (__elf_getdata_internal): Rename to __elf_getdata_rdlock.
1514 (__libelf_set_rawdata_wrlock): New function.
1515 (__libelf_set_rawdata): Make it a wrapper that calls *_wrlock.
1516 * elf32_updatenull.c, libelfP.h
1517 (__elfNN_updatenull): Rename to __elfNN_updatenull_wrlock.
d56e232f 1518
b4d6f0f8 15192008-08-21 Petr Machata <pmachata@redhat.com>
d56e232f 1520
d56e232f 1521 * elf32_getphdr.c, libelfP.h
b4d6f0f8
RM
1522 (__elfNN_getphdr_internal): Drop. Move __elfNN_getphdr_internal
1523 code to __elfNN_getphdr_wrlock.
1524 (__elfNN_getphdr_rdlock, __elfNN_getphdr_wrlock): New functions.
1525 (__elfNN_getphdr_rdlock, __elfNN_getphdr_wrlock): Make these
1526 wrappers of getphdr_impl.
d56e232f 1527
b4d6f0f8 15282008-08-21 Petr Machata <pmachata@redhat.com>
d56e232f 1529
d56e232f 1530 * elf32_getehdr.c, libelfP.h
b4d6f0f8
RM
1531 (__elfNN_getehdr_internal): Rename to __elfNN_getehdr_rdlock.
1532 * gelf_getehdr, libelfP.h:
1533 (__gelf_getehdr_internal): Rename to __gelf_getehdr_rdlock.
1534
15352008-08-21 Petr Machata <pmachata@redhat.com>
1536
1537 * elf32_getshdr.c
1538 (__elfNN_getshdr_internal): Drop.
02f66452 1539 (load_shdr_wrlock, scn_valid): New functions, contain bits of
b4d6f0f8
RM
1540 behaviour from __elfNN_getshdr_internal.
1541 (__elfNN_getshdr_rdlock, __elfNN_getshdr_wrlock): Replacements for
1542 dropped _internal functions above.
1543 * elf_getshnum.c
1544 (__elf_getshnum_internal): Rename to __elf_getshnum_rdlock.
d56e232f
UD
1545
15462008-08-04 Petr Machata <pmachata@redhat.com>
1547
1548 * libelfP.h (RWLOCK_RDLOCK, RWLOCK_WRLOCK, RWLOCK_UNLOCK): New macros.
1549
1d8bb25c
RM
15502008-07-28 Roland McGrath <roland@redhat.com>
1551
1552 * elf.h: Update from glibc.
1553
13b69609
RM
15542008-03-31 Roland McGrath <roland@redhat.com>
1555
1556 * elf32_offscn.c: Make sure shdrs have been read in.
1557
059c83e5
RM
15582008-02-19 Roland McGrath <roland@redhat.com>
1559
1560 * elf.h: Update from glibc.
1561
15622008-02-08 Roland McGrath <roland@redhat.com>
1563
1564 * elf.h: Update from glibc.
1565
89759c76
UD
15662008-01-31 Ulrich Drepper <drepper@redhat.com>
1567
1568 * elf_strptr.c (elf_strptr): Don't fail if the ELF file is currently
1569 under construction and no raw data can be read from disk.
1570
059c83e5
RM
15712008-01-30 Roland McGrath <roland@redhat.com>
1572
1573 * elf.h: Update from glibc.
1574
15752008-01-26 Roland McGrath <roland@redhat.com>
1576
1577 * elf_begin.c (__libelf_next_arhdr): Rewrite conversions using a macro.
1578 Fixes various pastos in wrong type in sizeof, wrong string parsed.
1579
51b3032e
RM
15802008-01-20 Roland McGrath <roland@redhat.com>
1581
1582 * elf_getaroff.c: Calculate from start_offset, instead of using
1583 parent's state.ar.offset field.
1584
e219f1c1
UD
15852008-01-08 Roland McGrath <roland@redhat.com>
1586
1587 * Makefile.am (euinclude): Variable removed.
1588 (pkginclude_HEADERS): Set this instead of euinclude_HEADERS.
1589
15902008-01-03 Roland McGrath <roland@redhat.com>
1591
1592 * common.h: Add __attribute__ ((unused)) to static functions.
1593
3cbdd387
UD
15942007-12-20 Ulrich Drepper <drepper@redhat.com>
1595
1596 * Makefile.am (libelf_a_SOURCES): Add elf_scnshndx.
1597 * libelfP.h (struct Elf_Scn): Add shndx_index field.
1598 Declare __elf_scnshndx_internal.
1599 * elf32_getshdr.c: Record location of extended section header.
1600 * elf_begin.c (file_read_elf): Likewise.
1601 * elf_scnshndx.c: New file.
1602 * libelf.h: Declare elf_scnshndx.
1603 * libelf.map: Add elf_scnshndx to version ELFUTILS_1.4.
1604
1a2e8f4f
RM
16052007-11-12 Roland McGrath <roland@redhat.com>
1606
1607 * libelf.h: Replace off64_t with loff_t throughout.
1608 Only that type name is unconditionally defined by <sys/types.h>
1609
2449d7f7
RM
16102007-11-03 Roland McGrath <roland@redhat.com>
1611
1612 * libelf.h (Elf_Data): Comment fix.
1613
e4c22ea0
RM
16142007-10-18 Roland McGrath <roland@redhat.com>
1615
1616 * elf.h: Update from glibc.
1617
b597dfad
UD
16182007-10-07 Roland McGrath <roland@redhat.com>
1619
1620 * elf_begin.c (__libelf_next_arhdr): Fix fencepost error and wrong
1621 member access in terminating name with no trailing /. Trim trailing
1622 spaces when there is no /.
1623
59ea7f33
RM
16242007-10-04 Roland McGrath <roland@redhat.com>
1625
1626 * elf_end.c (elf_end): Don't free ELF->state.ar.ar_sym when it's -1l.
1627
16282007-10-03 Roland McGrath <roland@redhat.com>
1629
1630 * libelf.h (Elf_Data): Use off64_t for d_off.
1631 (Elf_Arhdr): Use off64_t for ar_size.
1632 (elf_update, elf_getbase, elf_getaroff): Return off64_t.
1633
1634 * gelf_rawchunk.c: File removed.
1635 * gelf_freechunk.c: File removed.
1636 * Makefile.am (libelf_a_SOURCES): Remove them.
1637 * libelf.map (ELFUTILS_1.0): Remove exports.
1638 * gelf.h: Remove decls.
1639
1640 * elf_getdata_rawchunk.c: New file.
1641 * Makefile.am (libelf_a_SOURCES): Add it.
1642 * libelf.map (ELFUTILS_1.3): Add elf_getdata_rawchunk.
1643 * libelf.h: Declare it.
1644 * libelfP.h (Elf_Data_Chunk): New type.
1645 (struct Elf.elf): New member `rawchunks'.
1646 * elf_end.c (elf_end): Free recorded rawchunk buffers.
1647
c76f0b05
RM
16482007-08-24 Roland McGrath <roland@redhat.com>
1649
1650 * gelf_getnote.c: New file.
1651 * Makefile.am (libelf_a_SOURCES): Add it.
1652 * gelf.h: Declare gelf_getnote.
1653 * libelf.map (ELFUTILS_1.3): Add gelf_getnote.
1654
1655 * libelfP.h (NOTE_ALIGN): New macro.
1656 * note_xlate.h: New file.
1657 * Makefile.am (noinst_HEADERS): Add it.
1658 * gelf_xlate.c: Include it.
1659 (__elf_xfctstom): Use elf_cvt_note.
1660 * elf_getdata.c (shtype_map, __libelf_type_align): Handle SHT_NOTE.
1661 (__libelf_set_rawdata): Likewise.
1662
cb6d8650
RM
16632007-08-19 Roland McGrath <roland@redhat.com>
1664
1665 * gelf_update_auxv.c: New file.
1666 * gelf_getauxv.c: New file.
1667 * Makefile.am (libelf_a_SOURCES): Add them.
1668 * gelf.h: Declare gelf_getauxv, gelf_update_auxv.
1669 * libelf.map (ELFUTILS_1.3): New set, inherits fom ELFUTILS_1.2.
1670 Export gelf_getauxv, gelf_update_auxv.
1671
1672 * libelf.h (Elf_Type): Add ELF_T_AUXV.
1673 * abstract.h: Add auxv_t entries.
1674 * exttypes.h: Likewise.
1675 * gelf_xlate.h: Likewise.
1676 * gelf_xlate.c (__elf_xfctstom): Add ELF_T_AUXV entries.
1677 * gelf_fsize.c (__libelf_type_sizes): Likewise.
1678
099dd527
RM
16792007-08-12 Roland McGrath <roland@redhat.com>
1680
1681 * elf32_updatefile.c (compare_sections): Sort secondarily on sh_size,
1682 and only tertiarily on index.
1683
87d4780b
RM
16842007-07-09 Roland McGrath <roland@redhat.com>
1685
1686 * elf.h: Update from glibc.
1687
4be15243
RM
16882007-04-22 Roland McGrath <roland@redhat.com>
1689
1690 * elf.h: Update from glibc.
1691
c07fbb3f
UD
16922007-03-18 Roland McGrath <roland@redhat.com>
1693
1694 * elf_begin.c (get_shnum): Fix test for e_shoff being out of bounds.
1695 Return zero when the section headers do not fit within MAXSIZE.
1696
16972007-03-09 Roland McGrath <roland@redhat.com>
1698
1699 * libelfP.h (LIBELF_EV_IDX): New macro.
1700 (__libelf_type_align): New macro.
1701 [! ALLOW_UNALIGNED]: Declare __libc_type_aligns array.
1702 * elf_getdata.c (shtype_map): Convert to just Elf_Type[][].
1703 (convert_data, __libelf_set_rawdata): Use that, __libelf_type_align,
1704 and __libelf_type_sizes, in place of old table.
1705 (__libc_type_aligns): New const variable.
1706
ce0bdb6e
UD
17072007-02-04 Ulrich Drepper <drepper@redhat.com>
1708
1709 * Makefile (libelf.so): Build with -z relro.
1710
1711 * elf_begin.c (read_file): When using ELF_C_READ_MMAP use MAP_PRIVATE.
1712
ecf2b124
UD
17132007-01-30 Ulrich Drepper <drepper@redhat.com>
1714
1715 * nlist.c: Close file descriptor before returning.
1716
aa915fd3
UD
17172007-01-20 Roland McGrath <roland@redhat.com>
1718
1719 * gnuhash_xlate.h (elf_cvt_gnuhash): Fix fence-post error so we
1720 convert the final word.
1721
1722 * elf32_getshdr.c: Don't byteswap shdr fields when EI_DATA matches
1723 MY_ELFDATA on !ALLOW_UNALIGNED machines.
1724
17252007-01-18 Roland McGrath <roland@redhat.com>
1726
1727 * gelf_rawchunk.c (gelf_rawchunk): Clear RESULT pointer after freeing
1728 it on read error.
1729
8190db6a
RM
17302006-10-13 Roland McGrath <roland@redhat.com>
1731
56bc0b83 1732 * elf32_updatenull.c: Look for and accept phdr also for ET_CORE.
8190db6a
RM
1733 * elf_error.c (msgstr): Change ELF_E_INVALID_PHDR string.
1734
c373d850
RM
17352006-08-29 Roland McGrath <roland@redhat.com>
1736
1737 * elf32_getphdr.c: Don't byteswap phdr fields when EI_DATA matches
1738 MY_ELFDATA on !ALLOW_UNALIGNED machines.
1739 Reported by Christian Aichinger <Greek0@gmx.net>.
1740
1741 * Makefile.am (CLEANFILES): Add libelf.so.$(VERSION).
1742
231c590f
UD
17432006-08-08 Ulrich Drepper <drepper@redhat.com>
1744
1745 * elf.h (DT_VALNUM): Update.
1746 (DT_ADDRNUM): Likewise.
1747
077c65f3
UD
17482006-07-12 Ulrich Drepper <drepper@redhat.com>
1749
1750 * elf32_updatefile.c: Adjust for internal_function_def removal.
1751 * elf32_updatenull.c: Likewise.
1752 * elf_begin.c: Likewise.
1753 * elf_getdata.c: Likewise.
1754
8ae58142
UD
17552006-07-11 Ulrich Drepper <drepper@redhat.com>
1756
1757 * libelf.h: Define ELF_T_GNUHASH.
1758 * elf_getdata.c (TYPEIDX): Handle SHT_GNU_HASH.
1759 (shtype_map): Add SHT_GNU_HASH entries.
1760 * gelf_xlate.c (__elf_xfctstom): Add ELF_T_GNUHASH entries.
d315bb2d
UD
1761 * gnuhash_xlate.h: New file.
1762 * Makefile.am (noinst_HEADERS): Add gnuhash_xlate.h.
8ae58142 1763
28ed895f
UD
17642006-07-06 Ulrich Drepper <drepper@redhat.com>
1765
1766 * elf_gnu_hash.c: New file.
1767 * libelf.h: Declare elf_gnu_hash.
1768 * Makefile.am (libelf_a_SOURCES): Add elf_gnu_hash.
1769 * libelf.map: Add elf_gnu_map for version ELFUTILS_1.2.
1770
1d3a64d7
RM
17712006-06-15 Roland McGrath <roland@redhat.com>
1772
1773 * libelf.h (elf_getarsym): Fix comment typo.
1774 Rename second parameter to be more explanatory.
1775 (elf_getident, elf_rawhide): Likewise.
1776
f97208e0
UD
17772006-05-28 Ulrich Drepper <drepper@redhat.com>
1778
1779 * elf32_updatefile.c (updatemmap): Preserve section content if
1780 copying would overwrite them.
1781 Fix msync paramters.
1782
b4379728
RM
17832006-04-04 Roland McGrath <roland@redhat.com>
1784
1785 * elf32_updatefile.c (updatemmap): Handle other-endian case.
1786
697d8d28
UD
17872006-04-04 Ulrich Drepper <drepper@redhat.com>
1788
1789 * elf32_updatefile.c (updatemmap): Cleanups. Remove shdr_dest
1790 variable. Before writing sections, make a copy of the section
1791 header data if necessary. Don't write section header while
1792 writing the section constent, it might overwrite some sections.
1793 Restore the pointer afterwards.
1794 * elf32_updatenull.c (updatenull): If the offset of a section in a
1795 file changed make sure we read the section so that it'll be written
1796 out.
1797
1798 * elf_update.c: Remove debug message.
1799
7747de92
RM
18002005-12-07 Roland McGrath <roland@redhat.com>
1801
1802 * gelf_xlate.c [! ALLOW_UNALIGNED] (union unaligned): New type.
1803 (FETCH, STORE): New macros.
1804 (INLINE3): Use those to do alignment-friendly conversion.
1805
1806 * elf32_getshdr.c: Include map_address and start_offset in alignment
1807 calculations.
1808 * elf32_getphdr.c: Likewise.
1809
b6405ca2
RM
18102005-11-19 Roland McGrath <roland@redhat.com>
1811
1812 * elf.h: Update from glibc.
1813
92b85239
RM
18142005-11-17 Roland McGrath <roland@redhat.com>
1815
1816 * elf.h: Update from glibc.
1817
fd856b58
RM
18182005-11-10 Roland McGrath <roland@redhat.com>
1819
1820 * elf.h: Update from glibc.
1821
89757447
RM
18222005-09-09 Roland McGrath <roland@redhat.com>
1823
1824 * elf_update.c (write_file): Stat the file and fchmod it after update
1825 if its mode had S_ISUID or S_ISGID bits set.
1826
fbe998a0
UD
18272005-08-28 Ulrich Drepper <drepper@redhat.com>
1828
1829 * elf32_getphdr.c: Include <system.h>. Use pread_retry instead of
1830 pread. And branch prediction where useful.
1831 * elf_begin.c: Likewise.
1832 * elf_getdata.c: Likewise.
1833 * elf_getshstrndx.c: Likewise.
1834 * elf_readall.c: Likewise.
1835 * gelf_rawchunk.c: Likewise.
1836 * elf32_updatefile.c: Include <system.h>. Use pread_retry instead of
1837 pread. And branch prediction where useful.
1838 * elf_getarsym.c: Don't define pread_retry here.
1839
1840 * Makefile.am: Use $(LINK) not $(CC) when creating DSO.
1841 (%.os): Use COMPILE.os.
1842 (COMPILE.os): Filter out gconv options.
1843
18442005-08-27 Ulrich Drepper <drepper@redhat.com>
1845
1846 * elf_begin.c (file_read_elf): Avoid reading ELF header from file
1847 again. Instead accept additional parameter which points to it if we
1848 don't use mmap.
1849 (get_shnum): Use passed in e_ident value as source of ELF header.
1850
5d83229c
UD
18512005-08-15 Ulrich Drepper <drepper@redhat.com>
1852
e5294612
UD
1853 * elf_begin.c (__libelf_next_arhdr): Use TEMP_FAILURE_RETRY.
1854
5d83229c
UD
1855 * Makefile (libelf_a_SOURCES): Add elf_getaroff.c.
1856 * libelf.map: Export elf_getaroff.
1857 * libelf.h: Declare elf_getaroff.
1858 * elf_getaroff.c: New file.
1859
0f6abbbc
UD
18602005-08-13 Ulrich Drepper <drepper@redhat.com>
1861
1862 * elf_begin.c (get_shnum): Optimize memory handling. Always read from
1863 mapped file if available. Fix access to 64-bit sh_size. Recognize
1864 overflow.
1865 (file_read_elf): Likewise.
1866
e9c4e8ec
RM
18672005-08-12 Roland McGrath <roland@redhat.com>
1868
1869 * elf32_offscn.c: Do not match empty sections at OFFSET unless
1870 there are no nonempty sections at that offset.
1871
b03b0578
UD
18722005-08-07 Ulrich Drepper <drepper@redhat.com>
1873
1874 * elf.h: Update from glibc.
1875
47be795d
UD
18762005-08-06 Ulrich Drepper <drepper@redhat.com>
1877
1878 * Makefile.am (AM_CFLAGS): Add -fpic when BUILD_STATIC.
1879
acb89839
UD
18802005-08-03 Ulrich Drepper <drepper@redhat.com>
1881
1882 * libelf.map: Move elf32_offscn, elf64_offscn, and gelf_offscn in
1883 new version ELFUTILS_1.1.1.
1884
41de488a
UD
18852005-08-02 Ulrich Drepper <drepper@redhat.com>
1886
1887 * elf_error.c: Add handling of ELF_E_INVALID_OFFSET.
1888 * elf32_offscn.c: New file.
1889 * elf64_offscn.c: New file.
1890 * gelf_offscn.c: New file.
1891 * Makefile.am (libelf_a_SOURCES): Add elf32_offscn.c, elf64_offscn.c,
1892 and gelf_offscn.c.
1893 * libelf.sym: Export new symbols.
1894
b08d5a8f
UD
18952005-07-23 Ulrich Drepper <drepper@redhat.com>
1896
1897 * elf-knowledge.h (SECTION_STRIP_P): Don't handle removal of debug
1898 sections here anymore.
1899 * elf32_checksum.c: Adjust for change in SECTION_STRIP_P interface.
1900
1901 * elf_update.c (elf_update): Get write lock, not read lock.
1902
1903 * elf32_updatenull.c (updatenull): Get section headers if necessary
1904 and possible.
1905
19062005-07-22 Ulrich Drepper <drepper@redhat.com>
1907
1908 * elf32_updatenull.c (updatenull): If program header hasn't been loaded
1909 yet, try to do it now.
1910 Don't unnecessarily update overflow of section count in zeroth section
1911 sh_size field.
1912 If section content hasn't been read yet, do it before looking for the
1913 block size. If no section data present, infer size of section header.
1914
19152005-05-11 Ulrich Drepper <drepper@redhat.com>
1916
1917 * elf.h: Update again.
1918
19192005-05-09 Ulrich Drepper <drepper@redhat.com>
1920
1921 * elf.h: Update from glibc.
1922
19232005-05-08 Roland McGrath <roland@redhat.com>
1924
1925 * elf_begin.c (read_file) [_MUDFLAP]: Don't use mmap for now.
1926 * elf_update.c (write_file) [_MUDFLAP]: Likewise.
1927
19282005-03-29 Ulrich Drepper <drepper@redhat.com>
1929
1930 * elf32_checksum.c: Use INTUSE and INTDEF to avoid PLTs.
1931 * elf_end.c: Likewise.
1932 * elf_getdata.c: Likewise.
1933 * gelf_getehdr.c: Likewise.
1934 * nlist.c: Likewise.
1935 * libelfP.h: Add declarations of internal functions.
1936
19372005-02-15 Ulrich Drepper <drepper@redhat.com>
1938
1939 * common.h (CONVERT): Make sure all values are unsigned.
1940 (CONVERT_TO): Likewise.
1941
1942 * Makefile.am (AM_CFLAGS): Add -Wformat=2.
1943 Fix rule to build libelf.so.
1944
19452005-02-06 Ulrich Drepper <drepper@redhat.com>
1946
1947 * Makefile.am: Cleanup AM_CFLAGS handling. Add -Wunused -Wextra.
1948 Remove lint handling.
1949 * elf32_getphdr.c: Minor cleanups.
1950 * elf32_getshdr.c: Likewise.
1951 * elf32_updatefile.c: Likewise.
1952 * elf32_updatenull.c: Likewise.
1953 * elf_begin.c: Likewise.
1954 * elf_error.c: Likewise.
1955 * elf_getarsym.c: Likewise.
1956 * elf_getdata.c: Likewise.
1957 * elf_update.c: Likewise.
1958 * gelf_xlate.c: Likewise.
1959
19602005-02-05 Ulrich Drepper <drepper@redhat.com>
1961
1962 * Makefile.am: Check for text relocations in constructed DSO.
1963
1964 * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -Werror -fpic -fmudflap.
1965
19662005-02-04 Ulrich Drepper <drepper@redhat.com>
1967
1968 * gelf_getehdr.c (gelf_getehdr): Slight optimization.
1969
1970 * elf32_checksum.c (checksum): Do not look at NOBITS sections.
1971
1972 * gelf.h: Add gelf_checksum prototype.
1973
19742004-09-25 Ulrich Drepper <drepper@redhat.com>
1975
1976 * elf32_checksum.c: Make compile with gcc 4.0.
1977 * elf32_updatefile.c: Likewise.
1978 * elf32_updatenull.c: Likewise.
1979 * elf_begin.c: Likewise.
1980 * elf_error.c: Likewise.
1981 * elf_getdata.c: Likewise.
1982 * elf_getident.c: Likewise.
1983
19842004-04-01 Ulrich Drepper <drepper@redhat.com>
1985
1986 * elf.h: Update from glibc.
1987
19882004-01-23 Ulrich Drepper <drepper@redhat.com>
1989
1990 * elf_update.c: Fix locking.
1991 * elf_clone.c: Likewise.
1992
1993 * libelf.h: Define ELF_T_LIB.
1994 * gelf_getlib.c: New file.
1995 * gelf_update_lib.c: New file.
1996 * gelf.h: Declare the new functions. Define GElf_Lib.
1997 * abstract.h: Define Lib, Lib32, Lib64.
1998 * gelf_xlate.c (__elf_xfctstom): Add ELF_T_LIB entry.
1999 * gelf_xlate.h: Add entry for ElfXX_Lib.
2000 * elf_getdata.c: Recognize SHT_GNU_LIBLIST as a known section type.
2001 * libelf.map: Add new symbols to ELFUTILS_1.1.
2002 * Makefile.am (libelf_a_SOURCES): Add gelf_getlib.c and
2003 gelf_update_lib.c.
2004
20052004-01-17 Ulrich Drepper <drepper@redhat.com>
2006
2007 * Makefile.am: Support building with mudflap.
2008
2009 * gelf_xlate.c (INLINE3): Avoid using cast as lvalue.
2010 * dl-hash.h (_dl_elf_hash): Likewise.
2011
20122004-01-05 Ulrich Drepper <drepper@redhat.com>
2013
2014 * elf-knowledge.h: New file. From libelf subdir.
2015 * Makefile.am (euincludedir): Define.
2016 (euinclude_HEADERS): Add elf-knowledge.h.
2017
20182003-09-24 Ulrich Drepper <drepper@redhat.com>
2019
2020 * elf.h: Define some PT_IA_64_HP_* constants.
2021
20222003-09-23 Jakub Jelinek <jakub@redhat.com>
2023
2024 * libelfP.h (struct Elf): Move state.elf64.sizestr_offset after
2025 state.elf64.scnincr to match state.elf{,32}.
2026
20272003-08-12 Ulrich Drepper <drepper@redhat.com>
2028
2029 * elf32_updatefile.c (__updatemmap): When writing back file where
2030 some sections have not been read in, count their sizes based on
2031 the section header.
2032
20332003-08-11 Ulrich Drepper <drepper@redhat.com>
2034
d7635784 2035 * Moved to CVS archive.