Bastien Nocera
21a779235d
mindtct: Fix powmax_dirs leak on error
...
A copy/paste error meant we were trying to free a variable we only just
failed to allocate.
Spotted by Seth Arnold
Closes : #81
2018-10-12 00:54:39 +00:00
Bastien Nocera
1006467f33
lib: Add accessor for minutia coordinates
...
Add fp_minutia_get_coords() so that debugging applications can show the
detected minutiae along with the captured image.
This will also help fix the positively ancient fprint_demo.
See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=907470
2018-10-08 16:50:59 +02:00
Bastien Nocera
c273908471
lib: Tidy fp_internal.h
...
Group global variables, structure definitions, and functions, and
group functions by which C source they're defined in.
This also removes the FP_IMGDRV_SUPPORTS_UNCONDITIONAL_CAPTURE
definition that's already available in the drivers API-accessible
fpi-core.h
2018-09-28 15:12:39 +02:00
Bastien Nocera
bf8661bf45
lib: Include "fpi-dev.h" in drivers header
2018-09-28 15:12:39 +02:00
Bastien Nocera
499b522183
lib: Remove titles from headers
...
The purpose of the headers is (or will be) explained in more details
inside each one of the matching C files.
2018-09-28 15:12:39 +02:00
Bastien Nocera
13bfe7a65c
lib: Move driver definitions to fpi-core.h
2018-09-28 15:12:39 +02:00
Bastien Nocera
e90ec04441
lib: Move fp_minutiae to fpi-img.h
2018-09-28 15:12:39 +02:00
Bastien Nocera
a59a5caaf3
lib: Add missing includes
...
Headers for size_t and ssize_t, as used in the header itself.
2018-09-28 15:12:39 +02:00
Bastien Nocera
5b9f81fb46
lib: Move fp_dev helpers to fpi-dev.h from fpi-core.h
2018-09-28 15:12:39 +02:00
Bastien Nocera
d3aaebb352
lib: Add include guards to fpi-dev.h
2018-09-28 15:12:39 +02:00
Bastien Nocera
a99f920fe0
lib: Add include guards to fpi-poll.h
2018-09-28 15:12:39 +02:00
Bastien Nocera
fb5527c58c
lib: Split off imgdev functions
...
They now live in fpi-dev-img.[ch]
2018-09-28 15:12:39 +02:00
Bastien Nocera
fcd3c1dd89
lib: Split off core.c drivers API
2018-09-28 15:12:39 +02:00
Bastien Nocera
3a9500be67
lib: Move fpi-img utils to fpi-img's header
2018-09-28 15:12:39 +02:00
Bastien Nocera
1d93b86569
lib: Rename assembling.[ch]
...
This is already self-contained.
2018-09-28 15:12:39 +02:00
Bastien Nocera
aca2cd41d8
lib: Rename sync.c to fpi-sync.c
...
All the functions there are public, so no matching header.
2018-09-28 15:12:39 +02:00
Bastien Nocera
1035f733aa
lib: Split off async functions
...
And don't add the new fpi-async.h to the driver imports, it will only
be used by the upekts driver.
2018-09-28 15:12:39 +02:00
Bastien Nocera
2818d94010
lib: Split off fp_img helpers
...
And rename img.c to fpi-img.c, as well as pixman.c to fpi-img-pixman.c
2018-09-28 15:12:39 +02:00
Bastien Nocera
1d1c34eb60
lib: Make fpi_print_data_item_free() static
2018-09-28 15:12:39 +02:00
Bastien Nocera
ca06fae22e
lib: Split off fpi_print_data helpers
...
And rename data.c to fpi-data.c
2018-09-28 15:12:39 +02:00
Bastien Nocera
36f527269b
Revert "lib: Mark fpi_ssm_get_user_data as deprecated"
...
This reverts commit 1fd82b5162
.
This was causing too many warnings at this stage of porting. We'll add
it again when most of the drivers are ported.
2018-09-28 15:12:39 +02:00
Bastien Nocera
7cfe20e07f
lib: Fix gtk-doc warning
...
warning: no link for: "timeval" -> (<code class="literal">timeval</code>)
2018-09-27 16:08:21 +02:00
Bastien Nocera
1fd82b5162
lib: Mark fpi_ssm_get_user_data as deprecated
2018-09-27 16:07:58 +02:00
Bastien Nocera
0ace5f64f8
elan: Fix use-after-free if USB transfer is cancelled
2018-09-27 15:19:00 +02:00
Bastien Nocera
e532524c7e
elan: Name our timeouts
2018-09-27 15:17:15 +02:00
Bastien Nocera
ebd96f892e
lib: Make fpi_timeout_add() never fail
...
It will now assert if the monotonic clock isn't available. If that's the
case, we'll have bigger problems anyway.
2018-09-27 15:14:05 +02:00
Bastien Nocera
4b9b34fa4d
elan: Use USB helpers
2018-09-27 15:09:59 +02:00
Bastien Nocera
bcc1e7ae73
aes2501: Use USB helpers
...
Nice little cleanups.
2018-09-27 14:49:50 +02:00
Bastien Nocera
27accf42f2
uru4000: Port URU4000 driver to USB helpers
...
Doesn't look very useful.
2018-09-27 14:49:50 +02:00
Bastien Nocera
96f2e07cdd
lib: Add USB transfer helpers
...
Those helpers will provide more arguments in their callbacks, and handle
the libusb_transfer lifecycle, making it easier to use for drivers.
2018-09-27 14:49:50 +02:00
Bastien Nocera
192c4f3cfc
aesx660: Use constants for buffer sizes
2018-09-27 14:49:50 +02:00
Bastien Nocera
cb274032da
aes2501: Use constants for buffer sizes
2018-09-27 14:49:50 +02:00
Bastien Nocera
b890fa56d8
aes1610: Use constants for buffer sizes
2018-09-27 14:49:50 +02:00
Bastien Nocera
b817b46494
lib: Remove home-grown min() implementation
...
And use GLib's.
2018-09-27 14:49:50 +02:00
Bastien Nocera
49ba59369a
aesx660: Remove home-grown min() implementation
...
And use GLib's.
2018-09-27 14:49:50 +02:00
Bastien Nocera
d09cb88e9a
uru4000: Fix typos in comments
2018-09-27 14:49:50 +02:00
Bastien Nocera
44c3f4f772
lib: Cancel pending timeouts on close
...
So that the drivers don't call back into themselves once freed.
2018-09-27 14:49:50 +02:00
Bastien Nocera
948a67a51f
lib: Add internal fpi_timeout_cancel_all_for_dev()
...
This will be used to disable all timeouts for a device that's about
to be closed, and freed.
2018-09-27 14:49:50 +02:00
Bastien Nocera
de79609550
lib: Use timeout name in debug messages when available
2018-09-27 14:49:41 +02:00
Bastien Nocera
d18e10535e
lib: Add a way to name timeouts
...
To make it easier to print debug information about where timeouts are
coming from.
2018-09-27 14:49:41 +02:00
Bastien Nocera
2954583373
lib: Fix memory leak in fpi_poll_exit()
...
The active_timers list was freed, but not the elements themselves.
2018-09-27 14:36:06 +02:00
Bastien Nocera
ccdecdea11
lib: Document fpi_ssm_jump_to_state()
2018-09-26 15:57:25 +02:00
Bastien Nocera
946388d1e9
lib: Fix incorrect guard in FP_IMG_DEV()
...
The check for the DRIVER_IMAGING type was reversed.
2018-09-26 15:53:52 +02:00
Bastien Nocera
10ae8ffb55
drivers: Simplify libusb_alloc_transfer(0) calls
...
By using our new, never-failing, USB allocation wrapper. As it can never
fail, we can also remove all the error paths for the allocations
failing.
2018-09-19 17:06:17 +02:00
Bastien Nocera
bdba9990fb
lib: Add libusb allocation helper
2018-09-19 17:04:55 +02:00
Bastien Nocera
50166e88c0
lib: Add fpi_ssm_next_state_timeout_cb() helper
...
To be used in 5 drivers.
2018-09-19 15:46:29 +02:00
Bastien Nocera
f2bc826a20
lib: Move aeslib.[ch] to the drivers directory
...
As it's used by drivers, and isn't a set of generic helpers.
2018-09-19 15:16:40 +02:00
Bastien Nocera
ac48d66203
lib: Mention that fpi_timeout gets freed
2018-09-18 20:02:14 +02:00
Bastien Nocera
f68e7fcb9f
lib: Add fp_dev argument to timeout callback
...
To cut down on the fpi_ssm_get_user_data() usage again.
2018-09-18 20:00:59 +02:00
Bastien Nocera
0c3a22758b
drivers: Simplify FP_INSTANCE_DATA(FP_DEV()) calls
...
When fp_dev is already available, don't use the fp_img_dev struct to get
to fp_dev with FP_DEV(), use the fp_dev directly.
2018-09-18 18:30:42 +02:00
Bastien Nocera
9cc859a318
drivers: Diminish fpi_ssm_get_user_data() usage
...
Can't remove it yet, as libusb transfers and timeouts don't pass the
fp_dev or fp_img_dev separately.
2018-09-18 18:30:42 +02:00
Bastien Nocera
7dfc8f3364
lib: Remove fpi_ssm_get_dev()
...
Usually by passing the dev it from an fpi_ssm callback, or simply
using that callback argument.
2018-09-18 14:02:23 +02:00
Bastien Nocera
e397571f83
lib: Add more args to fpi_ssm callbacks
...
Pass the struct fp_dev and user_data to fpi_ssm callbacks, so that we
might be able to get rid of the fpi_ssm_get_user_data(), and
fpi_ssm_get_dev() as most drivers just get those from the ssm anyway
in their callbacks.
2018-09-18 13:46:39 +02:00
Bastien Nocera
d34d7c26de
lib: Remove fpi_ssm_set_user_data()
...
And pass the user_data in fpi_ssm_new() instead.
2018-09-18 13:45:33 +02:00
Bastien Nocera
77defa1d8b
lib: Remove fpi_dev_get_nr_enroll_stages()
...
It's the same as fp_dev_get_nr_enroll_stages()
2018-09-15 01:23:02 +02:00
Bastien Nocera
5d01497b8b
lib: Remove dev_to_img_dev() helper
...
We can access the img_dev struct member directly, and we don't have
to double check that the img_dev member is actually an img_dev type,
as it always is.
2018-09-15 01:20:59 +02:00
Bastien Nocera
cb8732b255
lib: Remove priv struct member in fp_driver
...
It's unused.
2018-09-15 01:18:14 +02:00
Bastien Nocera
3f64b2ea5a
lib: Remove fpi_imgdev_get_usb_dev()
...
We now use fpi_get_usb_dev(FP_DEV()) instead.
2018-09-15 01:12:18 +02:00
Bastien Nocera
57b38a2876
lib: Remove fpi_imgdev_get_dev()
...
This is now handled by FP_DEV()
2018-09-15 01:12:18 +02:00
Bastien Nocera
058f91909d
lib: Remove fp_img_dev->priv
...
And use the new instance data helper.
2018-09-15 01:12:18 +02:00
Bastien Nocera
4f75e63e25
lib: Remove fp_dev->priv
...
Not precise enough, and it was only used in upekts to get/set the
instance private struct and keep it around, so add a new, more precisely
defined field to fp_dev for that.
2018-09-15 01:12:18 +02:00
Bastien Nocera
2e50ff5e7c
lib: Add some TODO items to fp_dev struct
2018-09-15 01:09:50 +02:00
Bastien Nocera
0b7477e72c
lib: Use fp_dev to access USB device
...
Instead of having own own pointer in fp_img_dev
2018-09-15 01:09:50 +02:00
Bastien Nocera
4dc8aa6dfa
docs: Add fpi-dev helpers to API docs
2018-09-15 01:09:50 +02:00
Bastien Nocera
161c3ccf1c
lib: Link fp_dev to fp_img_dev and back
...
So it's easy to switch between the 2 structs, and remove fp_img_dev->dev
direct access, as well as fp_dev->priv "user data" usage.
2018-09-15 01:09:39 +02:00
Bastien Nocera
170da7fec1
lib: Move fp_dev definition and helpers to separate header
2018-09-15 01:09:39 +02:00
Bastien Nocera
3cb3b1d63a
lib: Add Logging API documentation
2018-09-06 14:44:45 +02:00
Bastien Nocera
fc66919e1f
lib: Make BUG_ON() use fp_err()
...
So that when we change fp_err() to an assertion, BUG_ON() is changed as
well.
2018-09-06 14:42:33 +02:00
Bastien Nocera
de5b4e7dcb
lib: Split off logging helpers
2018-09-06 13:24:41 +02:00
Bastien Nocera
2946dabd24
lib: Typedef fpi_timeout
2018-09-05 17:49:02 +02:00
Bastien Nocera
969eefc81f
lib: Add fpi_timeout API documentation
2018-09-05 17:48:43 +02:00
Bastien Nocera
efee7262b6
lib: Split off timeout helpers
...
And rename poll.c to fpi-poll.c
2018-09-05 17:15:20 +02:00
Bastien Nocera
603aab0a81
lib: Rename fpi_ssm_mark_aborted to fpi_ssm_mark_failed
2018-09-05 16:29:26 +02:00
Bastien Nocera
10e934e234
lib: Add fpi_ssm API documentation
2018-09-05 16:25:34 +02:00
Bastien Nocera
48b9e6c517
lib: Typedef fpi_ssm
2018-09-05 15:40:34 +02:00
Bastien Nocera
5ae2ef5407
lib: Split off fpi_ssm functions
...
Rename drv.c to something more fitting to its contents, and move state
machine code to its own header.
2018-09-05 15:40:01 +02:00
Bastien Nocera
6345835b02
doc: %NULL changes
2018-09-04 15:58:23 +02:00
Bastien Nocera
1d453b5732
doc: Fix warning about fp_capture_result
...
The enum values need to be documented before the enum itself, otherwise
this warning is thrown:
warning: Value descriptions for fp_capture_result are missing in source code comment block.
2018-09-04 15:57:46 +02:00
Bastien Nocera
d3a1b86ea4
doc: Fix warnings about user_data
...
Such as:
warning: Parameter description for *::user_data is missing in source code comment block.
2018-09-04 15:56:32 +02:00
Bastien Nocera
bb27ca5720
lib: Work-around gtk-doc's handling of the short type
...
gtk-doc thinks "short" is only a modifier, not a type of its own (short
== short int). This work-around does not change the ABI.
See https://gitlab.gnome.org/GNOME/gtk-doc/issues/44
2018-09-04 15:45:18 +02:00
Bastien Nocera
065c0b6202
fdu2000: This comment is not API docs
...
So format it in a way that gtk-doc doesn't think it's API docs.
2018-09-04 15:44:26 +02:00
Bastien Nocera
daed05755a
lib: Remove unused fp_imgdev_verify_state from drivers API
2018-09-04 14:46:25 +02:00
Bastien Nocera
fb192f706c
lib: Remove unused fp_dev_state from drivers API
2018-09-04 14:45:49 +02:00
Bastien Nocera
350b0a38e2
drivers: De-duplicate udf_crc() helper
...
Was in both the upektc_img and upekts drivers
2018-09-04 14:05:37 +02:00
Bastien Nocera
821cbae187
loop: Remove unused variable
...
mindtct/loop.c: In function ‘process_loop_V2’:
mindtct/loop.c:713:8: warning: variable ‘halfway’ set but not used [-Wunused-but-set-variable]
int halfway;
^~~~~~~
2018-08-27 20:01:00 +02:00
Bastien Nocera
528f3556ea
vfs301: Use vfs301_proto_deinit()
...
Even though it does nothing, make sure to use it so it's useful once it
does something.
2018-08-27 20:01:00 +02:00
Bastien Nocera
489afea605
lib: Remove unused fpi_dev_get_dev_state()
...
This internal-only function was never used.
2018-08-27 20:01:00 +02:00
Bastien Nocera
688a133f3f
morph: Fix misleading indentation
...
mindtct/morph.c: In function ‘get_south8_2’:
mindtct/morph.c:173:4: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
if (row >= ih-1) /* catch case where image is undefined southwards */
^~
mindtct/morph.c:176:7: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
return *(ptr+iw);
^~~~~~
mindtct/morph.c: In function ‘get_north8_2’:
mindtct/morph.c:197:4: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
if (row < 1) /* catch case where image is undefined northwards */
^~
mindtct/morph.c:200:7: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
return *(ptr-iw);
^~~~~~
mindtct/morph.c: In function ‘get_east8_2’:
mindtct/morph.c:221:4: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
if (col >= iw-1) /* catch case where image is undefined eastwards */
^~
mindtct/morph.c:224:7: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
return *(ptr+ 1);
^~~~~~
mindtct/morph.c: In function ‘get_west8_2’:
mindtct/morph.c:243:4: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
if (col < 1) /* catch case where image is undefined westwards */
^~
mindtct/morph.c:246:7: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
return *(ptr- 1);
^~~~~~
2018-08-27 20:01:00 +02:00
Bastien Nocera
0cd37b0142
block: Remove unused variable
...
mindtct/block.c: In function ‘block_offsets’:
mindtct/block.c:108:18: warning: variable ‘ph’ set but not used [-Wunused-but-set-variable]
int pad2, pw, ph;
^~
2018-08-27 20:01:00 +02:00
Bastien Nocera
9fb789dc78
nbis: Update to NBIS 5.0.0
...
This updates NBIS to its latest 5.0.0 version, dated 04/03/2015, from a
1.x version, dated 2007.
Original sources are available at:
https://www.nist.gov/itl/iad/image-group/products-and-services/image-group-open-source-server-nigos#Releases
And full change log at:
https://www.nist.gov/sites/default/files/documents/2016/12/14/changelog.txt
2018-08-27 20:01:00 +02:00
Bastien Nocera
770444af55
nbis: Add script to update NBIS and apply changes
...
NBIS is pretty complicated to update, seeing as we've made quite a few
changes to get it to compile as a library. With those scripts, we can
easily trim headers to remove functions we don't use, rename global
variables, and do any sort of fixups that are necessary right now.
In the future, removing unused NBIS functions might be as easy as
updating that script, re-running it, and pushing the changes.
Note that remove-function.lua is a very crude parser that only supports
NBIS' style of declaration, with the return type on the same line as the
function name. I wouldn't recommend trying to use it in another project.
Callcatcher (https://github.com/caolanm/callcatcher ) was also used to
remove additional unused functions.
2018-08-27 20:01:00 +02:00
Bastien Nocera
703d9b2a07
img: Remove remove_perimeter_pts setting
...
It's gone in NBIS 5.0.0, and will need to be replaced after the update.
2018-08-24 16:11:07 +02:00
Igor Filatov
8553f2e41c
elan: Send stop cmd and recalibrate after each capture
...
This seems to fix the lock-up issue with 0903
2018-08-10 14:21:36 +02:00
Bastien Nocera
9793d60c5a
elan: Remove unused string.h include
2018-08-10 13:45:29 +02:00
Igor Filatov
4ff97e7cbd
elan: Increase bz3 threshold to 24
...
Based on experience. Values more than 24 seem to work just after
enrollment, but it becomes very hard to verify in a day or so.
2018-08-10 13:45:29 +02:00
Igor Filatov
75fe328f64
elan: Don't rotate frames on 0x0c03
...
There has been a report that a 0x0c03 was installed straight (other
readers so far have produced images that are 90 degrees rotated). There
is no way for the dirver to know how a device is installed, so for now just
make an exception.
2018-08-10 13:45:29 +02:00
Igor Filatov
b28b006d61
elan: Use IMGDEV_STATE_* events instead of pre-set capture path
2018-08-10 13:45:29 +02:00
Igor Filatov
c3b1c982bc
elan: Set max frame height to 50, add note about performance
...
Frame height is a loosely experience-backed guesstimation. 50 seems to be
a good middle ground between swipe speed and quality.
2018-08-10 13:45:29 +02:00
Igor Filatov
b098399bbc
elan: Support 0x0c01~0x0c33
2018-08-10 13:45:29 +02:00
Igor Filatov
65bbdff3fc
elan: Stop doing sensor reset, change calibration and frame logic
...
Sensor reset code has been removed because it is not needed during normal
operation.
Calibration and frame processing logic has been improved according to
recommendations from Elantech.
2018-08-10 13:45:29 +02:00
Igor Filatov
fba3e682ea
elan: Remove supported devices from udev whitelist
2018-08-09 14:45:15 +02:00
Igor Filatov
bccff4ffef
elan: Change command structs, support more devices
...
Make each command a separate struct to get finer control over which
commands are called on which devices. Update ssm's accordingly. Add
sensor_reset and fuse_load commands.
Support 0x0903, 0x0c03, 0x0c16, 0x0c1a, 0x0c26
2018-08-09 14:42:25 +02:00
Bastien Nocera
626b0f1a8f
lib: Include more standard headers for drivers to use
...
Such as string.h and stdlib.h, to be able to compile on older
toolchains like that of Fedora 27.
2018-07-17 16:14:09 +02:00
Bastien Nocera
19e7b217c1
lib: Downgrade fp_err() to be non-fatal
...
Similarly to b1ac865abd
, downgrade
fp_err() to be non-fatal. A number of drivers would spit out an error
when encountering this call, but not crash, carry on and most of the
time recover.
Make sure we don't assert in those cases.
2018-07-16 16:08:54 +02:00
Bastien Nocera
29d3541b74
lib: Downgrade BUG* assertions to work-around crashes #2
...
Same as b1ac865abd
but for the drivers
API.
2018-07-16 16:07:25 +02:00
Bastien Nocera
b1ac865abd
lib: Downgrade BUG* assertions to work-around crashes
...
BUG() and BUG_ON() didn't use to assert, but only print an error if
debugging was enabled. This was hiding a lot of state bugs in drivers,
and transforming those into assertions causes crashes.
Downgrade the assertion to only print a warning, and hope that those
eventually get fixed in the drivers so we can re-enable them.
Closes : #77
2018-07-03 11:40:25 +02:00
Bastien Nocera
21504c0621
Merge branch 'wip/hadess/poll-retval' into 'master'
...
poll: Fix fp_get_pollfds retval type
See merge request libfprint/libfprint!5
2018-06-26 13:18:40 +00:00
Bastien Nocera
056ea541dd
poll: Fix fp_get_pollfds retval type
...
fp_get_pollfds() is supposed to return a negative value on failure, but
size_t is an unsigned integer. Use ssize_t instead.
2018-06-26 14:53:53 +02:00
Bastien Nocera
c284858d06
upekts: Fix enrollment never finishing on some upekts devices
...
Add support for more device status codes, brought back from the
now-removed UPEKE2 driver.
See 3bf55a3e07/libfprint/drivers/upeke2.c (L1013)
2018-06-19 11:11:04 +02:00
Bastien Nocera
bb4d888661
elan: Fix typo in comment
2018-06-18 18:07:24 +02:00
Corentin Noël
6cb77465ab
elan: Add USB ID for TNP Nano USB Fingerprint Reader (04f3:0c26)
...
The device works without any additional changes to the driver.
https://www.amazon.co.uk/gp/product/B075955HY7/
2018-06-13 20:22:29 +01:00
Bastien Nocera
ac1f97e2eb
lib: Supported devices list is for master, not stable
2018-06-12 12:46:19 +02:00
Bastien Nocera
b62e67401c
lib: Fix supported devices page title again
...
We need to call setlocale() so we run in UTF-8 mode, and can print that
sweet sweet em dash.
2018-06-08 16:23:35 +02:00
Bastien Nocera
dd0a0134a6
lib: Fix supported devices page title
2018-06-07 17:46:08 +02:00
Bastien Nocera
5e24000799
build: Remove unused meson rule
...
We're generating the supported-devices.md file in the website CI now.
2018-06-07 17:39:36 +02:00
Bastien Nocera
c5cdfcb120
lib: Sort supported devices list
2018-06-07 17:39:04 +02:00
Bastien Nocera
549a6694d2
build: Disable supported-devices.md generation for now
...
As added in e5393bf46a
It fails currently.
2018-06-04 16:13:08 +02:00
Bastien Nocera
14e34e1d15
build: Remove ported Makefile.am snippet
2018-06-03 14:41:02 +02:00
Bastien Nocera
e5393bf46a
lib: Add script to print MarkDown page of supported devices
2018-06-03 14:40:34 +02:00
Bastien Nocera
aec65777a7
nbis: Update links to new website
2018-06-03 00:30:10 +02:00
Bastien Nocera
31bad8ddd2
build: Fix fprint.h install destination
...
Since the port to meson, fprint.h was installing to $includedir instead
of $includedir/libfprint/
2018-05-31 14:35:16 +02:00
Bastien Nocera
c91819f551
lib: Remove drv->close absence support in fp_async_dev_close()
...
The driver will at least need to close its hardware resources, and
free memory, so it must have had one.
This case was never actually used as can be seen from the fact that
we would assert in fpi_drvcb_close_complete() if the state was wrong
but never set it to the expected value.
2018-05-31 11:06:31 +02:00
Bastien Nocera
b3f6ff5a36
lib: Add guard to async functions
...
To avoid having NULL devices being passed dereferenced.
2018-05-31 11:06:31 +02:00
Bastien Nocera
52f84bee3c
vfs5011: Error out when no lines were captured
...
Which avoids passing zero lines to fpi_assemble_lines()
"gmem.c:130: failed to allocate 18446744073709551612 bytes"
#3 0x00007fe4f6ef428f in g_log (log_domain=log_domain@entry=0x7fe4f6f3506e "GLib", log_level=log_level@entry=G_LOG_LEVEL_ERROR, format=format@entry=0x7fe4f6f3e610 "%s: failed to allocate %lu bytes") at gmessages.c:1398
#4 0x00007fe4f6ef2ac4 in g_malloc0 (n_bytes=n_bytes@entry=18446744073709551612) at gmem.c:129
#5 0x00007fe4f8052020 in median_filter (filtersize=25, size=-1, data=0x0) at assembling.c:309
#6 fpi_assemble_lines (ctx=ctx@entry=0x7fe4f82ac3c0 <assembling_ctx>, lines=0x0, lines_len=0) at assembling.c:389
#7 0x00007fe4f805f3db in submit_image (ssm=ssm@entry=0x16c3cba360, data=data@entry=0x16c3cb9cc0) at drivers/vfs5011.c:412
See https://bugzilla.redhat.com/show_bug.cgi?id=1484812
Closes : #42
2018-05-31 11:08:41 +02:00
Bastien Nocera
dda6857fee
assembling: Add guards to fpi_assemble_lines()
...
With the goal of not crashing when we try to malloc MAXINT bytes of RAM.
See https://bugzilla.redhat.com/show_bug.cgi?id=1484812
Closes : #42
2018-05-31 11:06:31 +02:00
Timur Celik
0215483fb3
assembling: Fix assembling of last frame in reverse mode
...
The last image is always misplaced because the sign of the delta
vector isn't corrected.
This could result in false positives and verification failing.
https://bugs.freedesktop.org/show_bug.cgi?id=105027
2018-05-30 11:17:08 +02:00
Timur Celik
37bb59df13
assembling: Fix assembling of frames for non-reverse stripes
...
Every frame stores the delta from the previous frame, in reverse mode
it stores the delta to the next frame. This causes images to use the
wrong delta while assembling in forward mode.
The broken assembling in forward mode will create a small error for
linear motion, because the delta of all frames is approximately the
same in this case. But if you move your finger, stop and then continue
moving in a single scan, the misplaced frames should be visible in
the assembled output.
This could result in false positives and verification failing.
https://bugs.freedesktop.org/show_bug.cgi?id=105027
2018-05-30 11:15:17 +02:00
Bastien Nocera
db34837d2d
lib: Simplify device discovery
...
Use GPtrArray instead of open-coding a NULL terminated array.
https://bugs.freedesktop.org/show_bug.cgi?id=106279
2018-05-29 13:45:27 +02:00
Bastien Nocera
ba49677794
vfs0050: Rename "udev" to "usb_dev"
...
To reduce confusion with possible future udev usage.
2018-05-29 13:37:19 +02:00
Bastien Nocera
1a376c1bfa
lib: Remove 2 more functions from the drivers API
2018-05-29 13:34:18 +02:00
Bastien Nocera
ef807d9d0e
lib: s/array_n_elements/G_N_ELEMENTS/
2018-05-29 13:34:18 +02:00
Bastien Nocera
2a4893d946
lib: fp_imgdev_*() functions are only used in drivers
2018-05-29 13:34:18 +02:00
Bastien Nocera
cee061b363
lib: fpi_ssm_start_subsm() is only used in drivers
2018-05-29 13:34:18 +02:00
Bastien Nocera
1bbdf304ab
lib: Remove never defined fpi_ssm_has_completed()
2018-05-29 13:34:18 +02:00
Bastien Nocera
6155068f9e
lib: Split off some fp_img related functions
...
Some are internal, some are for drivers.
2018-05-29 13:34:18 +02:00
Bastien Nocera
0c4e3bb1c4
lib: Remove drivers definitions from drivers API
2018-05-29 13:34:18 +02:00
Bastien Nocera
4547ff0c19
lib: Remove a number of data types from drivers API
...
They're unused in drivers.
2018-05-29 13:34:18 +02:00
Bastien Nocera
b7cce4d91d
lib: Make fp_minutiae opaque
...
And fp_minutia private.
2018-05-29 13:34:18 +02:00
Bastien Nocera
475250ce71
lib: Split off some polling related functions
2018-05-29 13:34:18 +02:00
Bastien Nocera
f40f231a63
lib: Make fp_img_dev structure opaque
2018-05-29 13:34:18 +02:00
Bastien Nocera
d83d92adf2
lib: Make fp_dev structure opaque
2018-05-29 13:34:18 +02:00
Bastien Nocera
d15282bff1
lib: Remove minutiae utils from internal header
...
It's only used by drivers.
2018-05-29 13:34:18 +02:00
Bastien Nocera
00637c4f0b
lib: Remove fprint_get_drivers() from drivers API
...
Drivers don't need to get a list of drivers.
2018-05-29 13:34:18 +02:00
Bastien Nocera
2e035a7f45
lib: Make fpi_ssm opaque for drivers
...
We shouldn't access fpi_ssm struct fields directly in drivers, so add
accessor and setter functions for the common uses.
2018-05-29 13:34:18 +02:00
Bastien Nocera
17577175f8
lib: Remove fpi_driver_to_img_driver() from drivers API
...
It's only used internally to the library.
2018-05-29 13:34:18 +02:00
Bastien Nocera
933fab6ed4
lib: Remove array_n_elements() from internal header
...
It's unused.
2018-05-29 13:34:18 +02:00
Bastien Nocera
7e5661caff
lib: Don't include assembling.h in internal header
...
It's not needed.
2018-05-29 13:34:18 +02:00
Bastien Nocera
19dfb138a6
drivers: Use new drivers_api.h in drivers
2018-05-29 13:34:18 +02:00
Bastien Nocera
0930f2614c
lib: Use public header in helper files
...
aeslib.h and assembling.h don't need access to internal data structures,
so make them include the public fprint.h rather than the internal header
fp_internal.h.
2018-05-29 13:34:18 +02:00
Bastien Nocera
1b20521e5c
lib: Add drivers_api.h file
...
This will hide library internals, for the purpose of making the drivers
API documentable.
2018-05-29 13:34:18 +02:00