elfcopy: fail if debug link target is empty
An empty debug link target previously returned a confusing and incorrect error like "objcopy: fread failed: No error: 0". Now, return an explicit error. GNU objcopy allows an empty file as the debug link target. However, that case is nonsensical so diverging from GNU behaviour is fine. Reviewed by: bdrewery Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D5541
This commit is contained in:
parent
8b66d3d3bd
commit
f5e9c916af
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=296391
@ -1522,6 +1522,9 @@ add_gnu_debuglink(struct elfcopy *ecp)
|
|||||||
err(EXIT_FAILURE, "strdup failed");
|
err(EXIT_FAILURE, "strdup failed");
|
||||||
if (stat(ecp->debuglink, &sb) == -1)
|
if (stat(ecp->debuglink, &sb) == -1)
|
||||||
err(EXIT_FAILURE, "stat failed");
|
err(EXIT_FAILURE, "stat failed");
|
||||||
|
if (sb.st_size == 0)
|
||||||
|
errx(EXIT_FAILURE, "empty debug link target %s",
|
||||||
|
ecp->debuglink);
|
||||||
if ((buf = malloc(sb.st_size)) == NULL)
|
if ((buf = malloc(sb.st_size)) == NULL)
|
||||||
err(EXIT_FAILURE, "malloc failed");
|
err(EXIT_FAILURE, "malloc failed");
|
||||||
if ((fp = fopen(ecp->debuglink, "r")) == NULL)
|
if ((fp = fopen(ecp->debuglink, "r")) == NULL)
|
||||||
|
Loading…
Reference in New Issue
Block a user