summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexia Death <alexiadeath@gmail.com>2009-12-26 01:00:59 +0200
committerBastien Nocera <hadess@hadess.net>2010-08-19 20:21:51 +0100
commit4b518bd230ef0f3a26c8eb89736815ed9334b6bb (patch)
tree0b28385e838394745c0bdc843c4b61f9a428cf33
parentdaee067c4ffabff9836617b90c547873130087f1 (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.c8
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
@@ -228,8 +228,12 @@ void fpi_imgdev_image_captured(struct fp_img_dev *imgdev, struct fp_img *img)
228 228
229 fp_img_standardize(img); 229 fp_img_standardize(img);
230 imgdev->acquire_img = img; 230 imgdev->acquire_img = img;
231 fpi_img_to_print_data(imgdev, img, &print); 231 r = fpi_img_to_print_data(imgdev, img, &print);
232 if (img->minutiae->num < MIN_ACCEPTABLE_MINUTIAE) { 232 if (r < 0) {
233 fp_dbg("image to print data conversion error: %d", r);
234 imgdev->action_result = FP_ENROLL_RETRY;
235 goto next_state;
236 } else if (img->minutiae->num < MIN_ACCEPTABLE_MINUTIAE) {
233 fp_dbg("not enough minutiae, %d/%d", img->minutiae->num, 237 fp_dbg("not enough minutiae, %d/%d", img->minutiae->num,
234 MIN_ACCEPTABLE_MINUTIAE); 238 MIN_ACCEPTABLE_MINUTIAE);
235 fp_print_data_free(print); 239 fp_print_data_free(print);