billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=f497b9446c95dcd52c48dd1cd4f8470d80f6769e

commit f497b9446c95dcd52c48dd1cd4f8470d80f6769e
Author: Boris Faure <[email protected]>
Date:   Sun Apr 19 23:23:57 2020 +0200

    termiolink: harden functions link_is_*()
---
 src/bin/termiolink.c | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/src/bin/termiolink.c b/src/bin/termiolink.c
index f99cb4e..5625b3b 100644
--- a/src/bin/termiolink.c
+++ b/src/bin/termiolink.c
@@ -120,8 +120,12 @@ Eina_Bool
 link_is_protocol(const char *str)
 {
    const char *p = str;
-   int c = *p;
+   int c;
 
+   if (!str)
+     return EINA_FALSE;
+
+   c = *p;
    if (!isalpha(c))
      return EINA_FALSE;
 
@@ -145,6 +149,9 @@ link_is_protocol(const char *str)
 Eina_Bool
 link_is_url(const char *str)
 {
+   if (!str)
+     return EINA_FALSE;
+
    if (link_is_protocol(str) ||
        casestartswith(str, "www.") ||
        casestartswith(str, "ftp."))
@@ -155,7 +162,12 @@ link_is_url(const char *str)
 Eina_Bool
 link_is_email(const char *str)
 {
-   const char *at = strchr(str, '@');
+   const char *at;
+
+   if (!str)
+     return EINA_FALSE;
+
+   at = strchr(str, '@');
    if (at && strchr(at + 1, '.'))
      return EINA_TRUE;
    if (casestartswith(str, "mailto:";))
@@ -166,6 +178,9 @@ link_is_email(const char *str)
 Eina_Bool
 link_is_file(const char *str)
 {
+   if (!str)
+     return EINA_FALSE;
+
    switch (str[0])
      {
       case '/':

-- 


Reply via email to