mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
elfctl: avoid touching file if no change made
Suggested by: brooks
Reviewed by: brooks, markj
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D30452
(cherry picked from commit 3f2508b7f3)
This commit is contained in:
parent
ae23d30247
commit
5ceb90aa66
1 changed files with 5 additions and 1 deletions
|
|
@ -288,7 +288,7 @@ convert_to_feature_val(char *feature_str, uint32_t *feature_val)
|
|||
static bool
|
||||
edit_file_features(Elf *elf, int phcount, int fd, char *val)
|
||||
{
|
||||
uint32_t features;
|
||||
uint32_t features, prev_features;
|
||||
uint64_t off;
|
||||
|
||||
if (!get_file_features(elf, phcount, fd, &features, &off)) {
|
||||
|
|
@ -296,8 +296,12 @@ edit_file_features(Elf *elf, int phcount, int fd, char *val)
|
|||
return (false);
|
||||
}
|
||||
|
||||
prev_features = features;
|
||||
if (!convert_to_feature_val(val, &features))
|
||||
return (false);
|
||||
/* Avoid touching file if no change. */
|
||||
if (features == prev_features)
|
||||
return (true);
|
||||
|
||||
if (lseek(fd, off, SEEK_SET) == -1 ||
|
||||
write(fd, &features, sizeof(features)) <
|
||||
|
|
|
|||
Loading…
Reference in a new issue