From fe12352b57517d4346f3ca391b525894e5a61c7a Mon Sep 17 00:00:00 2001 From: James Booth Date: Sun, 29 Jul 2012 21:32:04 +0100 Subject: [PATCH] Fixed bug in tinyurl --- .gitignore | 1 + configure.ac | 2 +- src/command.c | 36 +++++++++++++++++++++--------------- 3 files changed, 23 insertions(+), 16 deletions(-) diff --git a/.gitignore b/.gitignore index 4c8d56d5..e27dfb93 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ profanity *.swp testsuite tags +cscope.out .deps/ build-aux/ Makefile diff --git a/configure.ac b/configure.ac index cff84ff4..bbed40a8 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ([2.65]) -AC_INIT([profanity], [0.1.3], [boothj5web@gmail.com]) +AC_INIT([profanity], [0.1.4], [boothj5web@gmail.com]) AC_CONFIG_SRCDIR([src/main.c]) AC_CONFIG_HEADERS([src/config.h]) AC_CONFIG_AUX_DIR([build-aux]) diff --git a/src/command.c b/src/command.c index 3bddc895..30c76b12 100644 --- a/src/command.c +++ b/src/command.c @@ -283,23 +283,29 @@ _cmd_msg(const char * const inp) static gboolean _cmd_tiny(const char * const inp) { - char *url = strndup(inp+6, strlen(inp)-6); + if (strlen(inp) > 6) { + char *url = strndup(inp+6, strlen(inp)-6); - if (!tinyurl_valid(url)) { - GString *error = g_string_new("/tiny, badly formed URL: "); - g_string_append(error, url); - cons_bad_show(error->str); - g_string_free(error, TRUE); - } else if (win_in_chat()) { - char *tiny = tinyurl_get(url); - char *recipient = win_get_recipient(); - jabber_send(tiny, recipient); - win_show_outgoing_msg("me", recipient, tiny); - free(recipient); - free(tiny); - free(url); + if (!tinyurl_valid(url)) { + GString *error = g_string_new("/tiny, badly formed URL: "); + g_string_append(error, url); + cons_bad_show(error->str); + g_string_free(error, TRUE); + free(url); + } else if (win_in_chat()) { + char *tiny = tinyurl_get(url); + char *recipient = win_get_recipient(); + jabber_send(tiny, recipient); + win_show_outgoing_msg("me", recipient, tiny); + free(recipient); + free(tiny); + free(url); + } else { + cons_bad_command(inp); + free(url); + } } else { - cons_bad_command(inp); + cons_show("usage: /tiny url"); } return TRUE;