From 656054ec9ea91c281b5decbc3b9c8b817e3d099a Mon Sep 17 00:00:00 2001
From: Anonymus Raccoon
Date: Sat, 23 May 2020 14:41:57 +0200
Subject: [PATCH] Solving a segfault
---
src/key_bindings/autocompletion.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/key_bindings/autocompletion.c b/src/key_bindings/autocompletion.c
index 53d9e01..d53e156 100644
--- a/src/key_bindings/autocompletion.c
+++ b/src/key_bindings/autocompletion.c
@@ -15,9 +15,14 @@
char *get_start_of_current_arg(buffer_t *buffer)
{
+ char *p;
+
if (!buffer->buffer)
return (NULL);
- return (memrchr(buffer->buffer, ' ', buffer->pos) + 1);
+ p = memrchr(buffer->buffer, ' ', buffer->pos);
+ if (!p)
+ return (NULL);
+ return (p + 1);
}
void print_results(my_window *window, unsigned count, char **results)
@@ -83,6 +88,8 @@ int complete_command(int key, buffer_t *buffer, env_t *env)
if (!buffer->buffer || !p)
return (0);
str = malloc(buffer->pos - (p - buffer->buffer) + 2);
+ if (!str)
+ return (0);
strncpy(str, p, buffer->pos - (p - buffer->buffer));
str[buffer->pos - (p - buffer->buffer)] = '\0';
strcat(str, "*");