From 0b1c169c4a009e1094fe5df938d2367e63ebeea0 Mon Sep 17 00:00:00 2001 From: Pablo Galindo Date: Sat, 17 Apr 2021 23:28:45 +0100 Subject: bpo-38530: Cover more error paths in error suggestion functions (GH-25462) --- Python/suggestions.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'Python/suggestions.c') diff --git a/Python/suggestions.c b/Python/suggestions.c index aa4870d13e..d4e9dc22bb 100644 --- a/Python/suggestions.c +++ b/Python/suggestions.c @@ -8,7 +8,7 @@ #define MAX_STRING_SIZE 25 /* Calculate the Levenshtein distance between string1 and string2 */ -static size_t +static Py_ssize_t levenshtein_distance(const char *a, size_t a_size, const char *b, size_t b_size) { @@ -33,7 +33,7 @@ levenshtein_distance(const char *a, size_t a_size, size_t *buffer = PyMem_Calloc(a_size, sizeof(size_t)); if (buffer == NULL) { - return 0; + return -1; } // Initialize the buffer row @@ -99,6 +99,9 @@ calculate_suggestions(PyObject *dir, } Py_ssize_t current_distance = levenshtein_distance( name_str, name_size, item_str, item_size); + if (current_distance == -1) { + return NULL; + } if (current_distance == 0 || current_distance > MAX_DISTANCE) { continue; } -- cgit v1.2.1