OSDN Git Service
Peter Jones [Thu, 10 Mar 2016 20:51:31 +0000 (15:51 -0500)]
libefivar: make efi loadopt path functions have useful limit checks
Make efi_loadopt_pathlen() and efi_loadopt_path() actually bounds check
against something useful, not just "does some possibly unallocated space
extend into some other possibly unallocated space".
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 10 Mar 2016 16:08:30 +0000 (11:08 -0500)]
Make sure -D_GNU_SOURCE is used on clang.
asprintf() requires _GNU_SOURCE to be defined, because the C standard
library is a joke.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 10 Mar 2016 16:00:14 +0000 (11:00 -0500)]
Fix our "make deps" dependencies.
This should fix issue #32, finally.
Signed-off-by: Peter Jones <pjones@redhat.com>
Steve McIntyre [Wed, 20 Jan 2016 17:44:28 +0000 (17:44 +0000)]
Fixes for compilation with gcc 6
linux.c: Fix warnings about dereferencing type-punned pointers: switch
from char * to uint8_t * in various places
(Adapted from
https://github.com/steve-mcintyre/efivar-devel/commit/
67320177d01b872df4cc714a5fe20f6cadc54319
aka
c82b13556ae142cec420258b8563f0dabb3dad83 , where it originally
lived, by pjones.)
Signed-off-by: Peter Jones <pjones@redhat.com>
Mario Limonciello [Sat, 5 Mar 2016 22:14:52 +0000 (16:14 -0600)]
Pass correct expected devpath to efi_va_generate_file_device_path_from_esp
When using efi_generate_file_device_path, the devpath found by find_file
points to a partition.
efi_va_generate_file_device_path_from_esp and further downsteam code
expects to find the parent node of that partition.
Prior to this fix, tools that used efi_generate_file_device_path would
generate invalid paths with NVMe disks.
Signed-off-by: Peter Jones <pjones@redhat.com>
Mario Limonciello [Sat, 5 Mar 2016 18:57:32 +0000 (12:57 -0600)]
Use detected partition number in call to efi_va_generate_file_device_path_from_esp
In efi_generate_file_device_path get_partition_number detects what
partition number is used for that device, but this doesn't actually get
used.
This potentially masks problems that might not be caught later on some
device types (such as NVMe - where this was initally found)
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Wed, 2 Mar 2016 19:46:15 +0000 (14:46 -0500)]
libefivar: get rid of our variadic mess in efi_set_variable()
Sometimes the linked output wasn't correctly choosing the right
functions, and we'd get undefined behavior and the result was random
file modes on efi variables.
Instead, require the mode, and provide a compatibility symbol with the
older version that will use a safe (if mildly annoying) mode of
(0600 & ~umask).
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Wed, 2 Mar 2016 19:23:21 +0000 (14:23 -0500)]
libefivar: make the nvme sysfs bits look even more like the sas bits
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Wed, 2 Mar 2016 16:17:48 +0000 (11:17 -0500)]
efivar: fix some leaked symbols
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Tue, 1 Mar 2016 20:41:53 +0000 (15:41 -0500)]
Get rid of the fd in make_blockdev_path()
Since we don't do the nvme ioctl any more, we don't need this.
Signed-off-by: Peter Jones <pjones@redhat.com>
Thierry Vignaud [Sat, 20 Feb 2016 06:00:04 +0000 (07:00 +0100)]
fix source URL
Peter Jones [Fri, 19 Feb 2016 23:53:00 +0000 (18:53 -0500)]
libefiboot: rework NVME so we get EUI right and don't need kernel headers
The headers are broken enough on various distros that it's better to
avoid them entirely.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 25 Feb 2016 19:15:18 +0000 (14:15 -0500)]
libefiboot: limit check everywhere, not just where it looked safe once.
'cause duh.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 25 Feb 2016 19:14:41 +0000 (14:14 -0500)]
libefiboot: Fix the types the compiler complains about.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 25 Feb 2016 19:13:42 +0000 (14:13 -0500)]
libefiboot: loadopt.c: include the loadopt header.
This lets the compiler complain about our types being wrong.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 25 Feb 2016 19:12:50 +0000 (14:12 -0500)]
libefivar: simplify efi_name_to_guid()'s string termination.
There's no reason to try to set the whole string end to 0 when just the
character in question will do, and the arithmetic is way easier this
way.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 25 Feb 2016 19:11:46 +0000 (14:11 -0500)]
libefiboot: Fix efidp_format_device_path()'s limit test.
A limit of 0 means 0, not no limit. That's why it's ssize_t.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 18 Feb 2016 15:42:56 +0000 (10:42 -0500)]
efivar: be safe for -Werror=missing-field-initializers
Caught as part of -Wextra
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 18 Feb 2016 15:28:54 +0000 (10:28 -0500)]
Use -Wextra
A sign was given but
many years have passed
Cost a little bit to love you but I
won't can't stop
Such a happy day
for me...
Sure, -Wextra is a little annoying, but in GCC 6 it has a lot of really
nice code verification options in it, and I don't want to turn those on
individually and break GCC 5 building.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 18 Feb 2016 15:26:31 +0000 (10:26 -0500)]
libefivar: be safe for -Werror=missing-field-initializers
Caught as part of -Wextra
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 18 Feb 2016 15:15:28 +0000 (10:15 -0500)]
libefiboot: efi_loadopt_desc() isn't const, the returned string is.
Caught by -Werror=ignored-qualifiers as part of -Wextra
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 18 Feb 2016 15:11:32 +0000 (10:11 -0500)]
libefivar: be safe for -Werror=unused-parameter
Caught by -Werror=unused-parameter as part of -Wextra.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 18 Feb 2016 15:33:40 +0000 (10:33 -0500)]
libefiboot: be safe for -Werror=unused-parameter
Caught by -Werror=ignored-qualifiers as part of -Wextra. Some of them
may actually also be /errors/, so that's nice.
Signed-off-by: Peter Jones <pjones@redhat.com>
btian1 [Fri, 19 Feb 2016 01:33:38 +0000 (09:33 +0800)]
this condition should be error before change, should be rc instead of ret
Mike Gilbert [Thu, 14 Jan 2016 22:02:31 +0000 (17:02 -0500)]
Workaround rename of linux/nvme.h
Bug: https://bugs.gentoo.org/571548
Peter Jones [Mon, 15 Feb 2016 18:38:55 +0000 (13:38 -0500)]
Try to pretend 0.22 didn't happen by making 0.23 the next day.
Because
c0a2b3db1088af888d98c2223a648bc6f6274eea had 2 fairly serious
but quite subtle bugs.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Mon, 15 Feb 2016 19:27:36 +0000 (14:27 -0500)]
Make
df78c364 actually work.
Yeah, discovered in testing that it has to be O_RDONLY not O_WRONLY, and
apparently fixed it in the kernel tree but not here. Woops.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Mon, 15 Feb 2016 19:15:40 +0000 (14:15 -0500)]
Make gcc.specs work with gcc 6 / binutils 2.26
Apparently binutils 2.26 gets real picky about "ld -PIC" vs "ld -fPIC".
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Mon, 15 Feb 2016 18:46:23 +0000 (13:46 -0500)]
Put "-L." is in LDFLAGS so we don't need installed libefivar to build.
Resolves issue #40
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Mon, 15 Feb 2016 18:27:41 +0000 (13:27 -0500)]
Make guids be in correct byte order both in text and ram...
This is all because the EFI spec defines:
typedef struct {
UINT32 Data1;
UINT16 Data2;
UINT16 Data3;
UINT8
Data4[8];
} EFI_GUID;
{0x8BE4DF61,0x93CA,0x11d2,\
{0xAA,0x0D,0x00,0xE0,0x98,0x03,0x2B,0x8C}}
but prints:
8BE4DF61-93CA-11d2-AA0D-
00E098032B8C
But we decided to be "smart" and did:
typedef struct {
uint32_t a;
uint16_t b;
uint16_t c;
uint16_t d;
uint8_t e[6];
} efi_guid_t;
Which means d is effectively in big endian while a, b, and c are little
endian. This is awful.
We also have efi_guid_t in the public header, so things can take
sizeof() on it, which seems ill advised in hindsight.
Thankfully, we also have the EFI_GUID() macro, which was getting things
right, so if things memcmp()'d or efi_guid_cmp()'d on that, it'd get it
right, and efibootmgr is, in fact, using that (via EFI_GUID_GLOBAL)
instead.
So now, keep them all in memory as le32-le16-le16-be16-b-b-b-b-b-b at
all times. The only programs that should break were ther ones that were
already broken, and they'll need a rebuild.
Also fix a bug introduced in
c0a2b3db1088af888d98c2223a648bc6f6274eea
which introduced at "1" into some definitions of efi_guid_empty.
(yes, it really says "d2" not "D2")
Signed-off-by: Peter Jones <pjones@redhat.com>
Felix Janda [Wed, 20 Jan 2016 19:35:42 +0000 (20:35 +0100)]
Compile without -fshort-wchar
-fshort-wchar makes wchar_t 16bit. By removing the last indirect
occurences of wchar_t as L'\0', the option becomes superfluous.
Furthermore, this fixes an compilation error with musl libc due to
incompatibility with -fshort-wchar.
Mike Gilbert [Fri, 12 Feb 2016 18:22:13 +0000 (13:22 -0500)]
Make.defaults: Improve gcc/clang detection
The old filter only matched "gcc" or "clang".
The new findstring call matches any occurance of gcc or clang. This is
useful when CC includes the full host tuple, like x86_64-pc-linux-gnu-gcc.
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
Peter Jones [Wed, 10 Feb 2016 20:58:18 +0000 (15:58 -0500)]
Release 0.22
This has some new things in it:
- various build fixes for several compilers
- hopefully getting SATA PMP IDs right
- Reworked makefiles
- better handling of device node numbers
- devices mounted at more than one path work now
- make -j works better now
- lots of device path fixes
- fixes to efivar -L
- better nvme handling in libefiboot
- efivar (and libefivar) will now work transparently with immutable
efivarfs files.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Tue, 2 Feb 2016 14:40:44 +0000 (09:40 -0500)]
Make efivar work with immutable efivarfs files.
Signed-off-by: Peter Jones <pjones@redhat.com>
Steve McIntyre [Wed, 20 Jan 2016 17:44:28 +0000 (17:44 +0000)]
Multiple fixes for compilation with gcc 6
Multiple instances of non-NULL sanity checks against function
arguments declared as __attribute__((__nonnull__)); gcc 6 now triggers
warnings on these.
dp.c: Remove Unused variable end_instance
linux.c: Fix warnings about dereferencing type-punned pointers: switch
from char * to uint8_t * in various places
Signed-off-by: Steve McIntyre <steve@einval.com>
Sylvain Chouleur [Wed, 16 Dec 2015 13:21:29 +0000 (14:21 +0100)]
Rename endian.h into efivar_endian.h to avoid conflicts
When compiling efivar from another directory than the sources's one, we
will have to add ./src/ in the include path to be able to resolve
the include "endian.h" from ./src/dp-message.c. Then, when include
<endian.h> is done from ./src/guid.h, ./src/endian.h will be used
instead of system wide endian.h, which is wrong.
To avoid this situation, this patch renames ./src/endian.h into
./src/efivar_endian.h
Signed-off-by: Sylvain Chouleur <sylvain.chouleur@intel.com>
Peter Jones [Wed, 18 Nov 2015 22:33:34 +0000 (17:33 -0500)]
libefiboot: figure out nvme device paths better.
Figure out that an nvme device is the nvme device and make the path to a
partition correctly.
Something is also wrong on the failure path there - we should fail with
an error if we legit can't figure out a device path and never get valid
sizes etc., not write a bogus HD() paths filled with zeros.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Mon, 16 Nov 2015 16:09:49 +0000 (11:09 -0500)]
Use gcc -specs= for most command line stuff normally.
This makes the -fPIC/-pie/etc stuff *somewhat* easier to get right.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Mon, 16 Nov 2015 18:29:20 +0000 (13:29 -0500)]
Make -fPIC and -fPIE work as they should, and default correctly
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Mon, 16 Nov 2015 16:38:06 +0000 (11:38 -0500)]
Make LDFLAGS get set right from the rpm build
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Mon, 16 Nov 2015 20:53:16 +0000 (15:53 -0500)]
efivar: Don't list padding from the end of efi_well_known_guids with -L
Sometimes gcc seems to put stuff at the end of that array, and I don't
know why, but the way we're iterating displays it. Instead, stick a
real sentinal there.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Mon, 16 Nov 2015 16:09:03 +0000 (11:09 -0500)]
Make makeguids generate guid-symbols.c instead of .S
Just makes it a little easier to debug.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Fri, 13 Nov 2015 20:14:10 +0000 (15:14 -0500)]
Mark more of our exports with "default" visibility.
Some of the things we're exporting aren't always getting marked "D"
instead of "d" correclty on some compilers, because the decl doesn't
have the visibility attribute. Add it.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Fri, 13 Nov 2015 23:06:48 +0000 (18:06 -0500)]
Ignore efivar-static in the rpm .spec
For now, anyway.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 12 Nov 2015 20:25:33 +0000 (15:25 -0500)]
Temporarily use --add-needed when linking libefivar.so
Details on why are here:
https://sourceware.org/bugzilla/show_bug.cgi?id=19249
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 12 Nov 2015 15:54:56 +0000 (10:54 -0500)]
Show a closing ) on vendor console device paths.
Signed-off-by: root <root@pjones3.install.bos.redhat.com>
Peter Jones [Thu, 12 Nov 2015 15:06:17 +0000 (10:06 -0500)]
libefiboot: Make efidp multi-instance iteration actually work.
Make efidp_is_multiinstance() not forever loop, and make
efidp_instance_size() test for error correctly when calling
efidp_next_node()
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 12 Nov 2015 15:05:39 +0000 (10:05 -0500)]
Return the right offset in format_vendor_helper()
This could cause the space allocated for buffers to be much larger than
needed, and cause some parts of those buffers to be after the last NUL
character present, so they won't be displayed right when printed.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 12 Nov 2015 15:03:45 +0000 (10:03 -0500)]
Format ACPI _ADR device lists in hex, not decimal.
These are structured values, and looking at them in decimal doesn't
really work.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 5 Nov 2015 15:27:56 +0000 (10:27 -0500)]
libefivar: explicitly link with libdl
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 5 Nov 2015 15:16:44 +0000 (10:16 -0500)]
libefivar: Try to do a better job on SATA.
I'm not sure this will work correctly, but we'll see - I think I've seen
some direct-attached devices that match on Sata(1,0,0) instead of
Sata(1,8000,0).
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 5 Nov 2015 15:16:13 +0000 (10:16 -0500)]
Fix .PRECIOUS / .INTERMEDIATE / .SECONDARY to avoid unneeded rebuilding.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Mon, 5 Oct 2015 18:44:24 +0000 (14:44 -0400)]
Make library objects depend on generated sources so make -jN works better.
Signed-off-by: Peter Jones <pjones@redhat.com>
Lans Zhang [Sat, 26 Sep 2015 06:00:04 +0000 (14:00 +0800)]
Fix getting back a wrong relpath
If a device is mounted at more than one mount points, the relpath
may be created with unexpected result because there is no compare
before doing it.
Resolvs #34
Signed-off-by: Lans Zhang <jia.zhang@windriver.com>
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Mon, 5 Oct 2015 14:43:22 +0000 (10:43 -0400)]
Make the compiler enforce strict symbol versioning.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Mon, 5 Oct 2015 14:39:59 +0000 (10:39 -0400)]
Treat minor device numbers in sysfs as unsigned.
https://github.com/ssten noticed that we accidentally use %hhd for block
device minor numbers; this is clearly wrong.
Resolves #33
Signed-off-by: Peter Jones <pjones@redhat.com>
Felix Janda [Tue, 14 Jul 2015 11:56:05 +0000 (05:56 -0600)]
Use the more portable major() instead of gnu_dev_major()
Do the same for minor() and gnu_dev_minor()
Peter Jones [Sun, 19 Jul 2015 18:48:29 +0000 (14:48 -0400)]
Make the makefile a lot simpler to deal with.
It actually adds some complexity in Make.rules, but it pays off in
src/Makefile where, where we no longer needs FOO_DEPS variables,
FOO_LIBS variables, and make functions to guess their names.
That is, it spends less time trying to emulate autoconf poorly.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Sun, 19 Jul 2015 16:05:11 +0000 (12:05 -0400)]
Make our definitions for efi_well_known_guid* consistent.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Tue, 14 Jul 2015 23:31:56 +0000 (19:31 -0400)]
Set the correct value for SATA port multipliers when there isn't one.
The current code sets the PMP ID in the device path to 0 when there's
none specified in the sysfs path. This is incorrect - the standards
says 0xffff is the correct number.
Resolves #29.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Tue, 14 Jul 2015 13:33:54 +0000 (09:33 -0400)]
Sometimes the compiler doesn't like { 0, } as an initializer...
Because it really wants to be { {0, },} or something, and sometimes the
compiler, knowing full well what we're trying to do, likes to complain
about the rigor applied to our technique in doing it.
memset() the struct ifreq to 0 instead so I don't need to figure out its
internal structure just to zero it out.
Resolves #28
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Mon, 13 Jul 2015 17:17:08 +0000 (13:17 -0400)]
Release 0.21
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Mon, 13 Jul 2015 19:41:27 +0000 (15:41 -0400)]
Fix some strict-aliasing violations.
GCC seems to think there are some violations of the strict aliasing
rules; making them char * instead of uintN_t * causes the rules to be
different, and that makes them okay.
Resolves #25.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Mon, 13 Jul 2015 19:36:21 +0000 (15:36 -0400)]
Make -O2 default.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Mon, 13 Jul 2015 19:33:44 +0000 (15:33 -0400)]
Make the deps in src/ work a bit better.
Fix a couple of outright errors (missing directory name and such) as
well as split the deps up to order it correctly.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Mon, 13 Jul 2015 19:32:02 +0000 (15:32 -0400)]
Hide some intentionally dead code from the compiler.
This would be technically correct code for UCS-4, but since it's UCS-2
it doesn't really make any sense. clang likes to complain about it, so
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Mon, 13 Jul 2015 18:42:35 +0000 (14:42 -0400)]
Get rid of some duplicate "const" specifiers.
Woops.
Signed-off-by: Peter Jones <pjones@redhat.com>
Mike Gilbert [Mon, 29 Jun 2015 18:32:08 +0000 (14:32 -0400)]
Utilize Requires.private and Libs.private in pkgconfig files
Mike Gilbert [Mon, 29 Jun 2015 18:24:32 +0000 (14:24 -0400)]
libefivar: Make sure EFIVAR_LIBS gets passed to the linker
Resolves #20.
Peter Jones [Mon, 13 Jul 2015 17:40:21 +0000 (13:40 -0400)]
Handle validation of inputs in efi_loadopt_create() better.
efibootmgr tries to tell how much space it needs to allocate by passing
in optional_data=NULL, optional_data_size=$SOMESIZE, and we're
validating that both things are set way too early.
Move that until after the "if (size==0) return sz;" check.
Based on the bug report in issue#22 and pull#27 .
Signed-off-by: Peter Jones <pjones@redhat.com>
Mike Gilbert [Tue, 30 Jun 2015 02:52:53 +0000 (22:52 -0400)]
libefiboot: Link against libefivar
Peter Jones [Mon, 13 Jul 2015 17:14:58 +0000 (13:14 -0400)]
Fix return value checking in efi_guid_to_name and efi_guid_to_symbol.
I really have no idea how that was supposed to work.
This needs a better test suite.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Fri, 26 Jun 2015 15:36:40 +0000 (11:36 -0400)]
Make our test suite slightly more documented and intuitive.
Signed-off-by: Peter Jones <pjones@redhat.com>
Reviewed-by: Steve McIntyre <steve@einval.com>
Reviewed-by: Daniel Jared Dominguez <Jared_Dominguez@Dell.com>
Peter Jones [Thu, 25 Jun 2015 13:48:20 +0000 (09:48 -0400)]
Error check variable size in vars_get_variable()
If the size doesn't match our ABI struct size, something is going very
wrong, and we'd rather communicate that than risk doing something that
makes no sense at all.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 25 Jun 2015 13:33:43 +0000 (09:33 -0400)]
Make vars_del_variable() set errno when the variable size is bad.
Commit
eaaedefb correctly changes this code path so that it tests the
file size correctly, but errno is still untouched, so from the
consumer's point of view, if the real error *does* occur, you'll get
something like:
Could not delete variable: Success
which is obviously nonsense. Instead, errno should be something about
the size. So I picked EFBIG.
Signed-off-by: Peter Jones <pjones@redhat.com>
Gary Ching-Pang Lin [Wed, 24 Jun 2015 09:51:44 +0000 (17:51 +0800)]
Exclude the padded NULL when comparing the file size
In vars_del_variable(), this "if" statement always failed because
read_file() returned the actual file size +1.
if (rc < 0 || (buf_size != sizeof(efi_kernel_variable_64_t) &&
buf_size != sizeof(efi_kernel_variable_32_t)))
Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
Fointard [Mon, 8 Jun 2015 09:52:29 +0000 (11:52 +0200)]
Removed unused code section
As guid is checked line 24, the condition line 38 will never be true.
Thus lines 39 and 40 are never executed.
Signed-off-by: Fointard <cmarpaud@gmail.com>
Peter Jones [Wed, 17 Jun 2015 17:16:56 +0000 (13:16 -0400)]
Do a better job of setting SONAME right.
Soname should be libfoo.MAJOR not libfoo.MAJOR.MINOR, and we should have
symlinks for all of those things.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Tue, 2 Jun 2015 18:32:44 +0000 (14:32 -0400)]
Bump version to 0.20
Signed-off-by: Peter Jones <pjones@redhat.com>
Mario Limonciello [Tue, 2 Jun 2015 04:14:41 +0000 (23:14 -0500)]
Adjust linker order for pkg-config to fix FTBFS on Ubuntu toolchain.
/usr/bin/gcc -L../libdpe -pie -fPIE -Wl,-z,relro,-z,now -o efisiglist efisiglist.o siglist.o -lpopt -luuid -lnss3 -lnssutil3 -lsmime3 -lssl3 -lplds4 -lplc4 -lnspr4 -lefivar -ldl -lpthread
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libefivar.so: undefined reference to `dlopen'
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libefivar.so: undefined reference to `dlclose'
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libefivar.so: undefined reference to `dlsym'
collect2: error: ld returned 1 exit status
make[2]: *** [efisiglist] Error 1
Signed-off-by: Daniel Jared Dominguez <Jared_Dominguez@Dell.com>
Signed-off-by: Mario Limonciello <Mario_Limonciello@Dell.com>
Mario Limonciello [Tue, 2 Jun 2015 13:33:59 +0000 (09:33 -0400)]
Make sure tester is build with the right link order for libraries.
since libefivar references libdl directly, libdl needs to be after it in
the link order.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Mon, 1 Jun 2015 20:11:58 +0000 (16:11 -0400)]
Work around LocateDevicePath() not grokking PcieRoot() devices properly.
Basically: PNP0A03 always has to work, so everybody always uses it, so
nobody tests PNP0A08 working, so it doesn't.
So you have to lie to the machine about which hardware you want it to
find things on, because if you tell it the truth, it'll lie to you.
The truth is a lie.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 28 May 2015 14:31:15 +0000 (10:31 -0400)]
Rectify some missing changelog.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 28 May 2015 13:10:54 +0000 (09:10 -0400)]
Update version to 0.19
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 28 May 2015 13:10:36 +0000 (09:10 -0400)]
Add more TODO
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 28 May 2015 12:45:18 +0000 (08:45 -0400)]
Add a efivar-static target
This adds a target in the toplevel as well as in src/ for
"efivar-static", which builds a static version of the binary for use on
platforms that don't typically have shared libraries.
Based on a patch from Antonio Ospite <ao2@ao2.it>
Resolves: issue #14
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Wed, 27 May 2015 18:52:57 +0000 (14:52 -0400)]
Add some TODO
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 14 May 2015 13:22:30 +0000 (09:22 -0400)]
Get rid of a bunch of legacy code.
We don't need SCSI ioctls and such any more, since we're parsing it all
from sysfs.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Tue, 12 May 2015 20:48:49 +0000 (16:48 -0400)]
Make ATA/ATAPI devices work most of the time hopefully.
Qemu and friends use these sometimes, but there's no good way to tell
them apart from SATA. We're guessing based on driver name: pata_* or
ata_piix -> ata.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Mon, 11 May 2015 16:58:37 +0000 (12:58 -0400)]
Start man pages for efidp...
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Mon, 11 May 2015 14:04:06 +0000 (10:04 -0400)]
Make loadopt function naming more homogenous.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Mon, 11 May 2015 14:03:05 +0000 (10:03 -0400)]
Get rid of extra _dp_ from efidp_is_multiinstance()
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Mon, 11 May 2015 14:01:59 +0000 (10:01 -0400)]
Add stubs for efidp_parse_* since they're in the headers.
These both set errno=ENOSYS and return -1 for now.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 7 May 2015 19:09:07 +0000 (15:09 -0400)]
Get rid of our dynamic major code; we get it from sysfs.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 7 May 2015 19:05:46 +0000 (15:05 -0400)]
Propogate errors back from efi_generate_*() correctly.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 7 May 2015 19:05:01 +0000 (15:05 -0400)]
Do a better job of figuring out partition numbers.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 7 May 2015 19:04:02 +0000 (15:04 -0400)]
Load options are packed...
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Thu, 7 May 2015 18:34:58 +0000 (14:34 -0400)]
Missed one tiny bit of getting rid of -lpci.
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Wed, 6 May 2015 14:18:23 +0000 (10:18 -0400)]
Minor formatting change in efiboot-loadopt.h
Signed-off-by: Peter Jones <pjones@redhat.com>
Peter Jones [Wed, 6 May 2015 14:18:10 +0000 (10:18 -0400)]
Add some validity checkers for dp and loadopt.
Signed-off-by: Peter Jones <pjones@redhat.com>