diff options
author | Alexia Death <alexiadeath@gmail.com> | 2009-12-26 01:00:59 +0200 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2010-08-19 20:21:51 +0100 |
commit | 4b518bd230ef0f3a26c8eb89736815ed9334b6bb (patch) | |
tree | 0b28385e838394745c0bdc843c4b61f9a428cf33 | |
parent | daee067c4ffabff9836617b90c547873130087f1 (diff) |
Fix a segfault if a scan was shorter than 8 lines.
This segfault was caused by proceeding to free the conversion result
without checking for an error condition in image to print
data conversion.
http://lists.reactivated.net/pipermail/fprint/2009-December/001405.html
-rw-r--r-- | libfprint/imgdev.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/libfprint/imgdev.c b/libfprint/imgdev.c index 4b49c73..b365d74 100644 --- a/libfprint/imgdev.c +++ b/libfprint/imgdev.c @@ -230,4 +230,8 @@ void fpi_imgdev_image_captured(struct fp_img_dev *imgdev, struct fp_img *img) imgdev->acquire_img = img; - fpi_img_to_print_data(imgdev, img, &print); - if (img->minutiae->num < MIN_ACCEPTABLE_MINUTIAE) { + r = fpi_img_to_print_data(imgdev, img, &print); + if (r < 0) { + fp_dbg("image to print data conversion error: %d", r); + imgdev->action_result = FP_ENROLL_RETRY; + goto next_state; + } else if (img->minutiae->num < MIN_ACCEPTABLE_MINUTIAE) { fp_dbg("not enough minutiae, %d/%d", img->minutiae->num, |