Introduction
Introduction Statistics Contact Development Disclaimer Help
minor changes, fix fd leak due to case insensitive channel name comparison, fix…
git clone git://git.suckless.org/ii
Log
Files
Refs
README
LICENSE
---
commit e048dac3dfcdc38d9869af04a18593046908a0a5
parent 566fa01e471cbbe318640150b44fa59bfe50f9a8
Author: Nico Golde <[email protected]>
Date: Mon, 24 Jan 2011 16:46:25 +0100
minor changes, fix fd leak due to case insensitive channel name comparison, fix…
Diffstat:
M CHANGES | 7 +++++++
M config.mk | 2 +-
M ii.c | 22 +++++++++++-----------
3 files changed, 19 insertions(+), 12 deletions(-)
---
diff --git a/CHANGES b/CHANGES
@@ -1,3 +1,10 @@
+1.5 (2011-01-24):
+ - fix channel name comparison in add_channel(), compare lowercase
+ to prevent leaking file descriptors in the long run => Thanks samurai!
+ - only handle commands ii explicitely understands and treat the rest
+ as raw irc (only worked for raw commands in capital lettersin the past) …
+ - minor changes
+
1.4 (2008-08-09):
- fix directory traversal on servers that support SAJOIN
NOTE: not marking as security relevant as it is only possible to
diff --git a/config.mk b/config.mk
@@ -12,7 +12,7 @@ DESTDIR =
INCDIR = ${PREFIX}/include
LIBDIR = ${PREFIX}/lib
-VERSION = 1.4
+VERSION = 1.5
# includes and libs
INCLUDES = -I. -I${INCDIR} -I/usr/include
diff --git a/ii.c b/ii.c
@@ -1,8 +1,7 @@
-/*
- * (C)opyright MMV-MMVI Anselm R. Garbe <garbeam at gmail dot com>
- * (C)opyright MMV-MMVII Nico Golde <nico at ngolde dot de>
- * See LICENSE file for license details.
- */
+/* (C)opyright MMV-MMVI Anselm R. Garbe <garbeam at gmail dot com>
+ * (C)opyright MMV-MMXI Nico Golde <nico at ngolde dot de>
+ * See LICENSE file for license details. */
+
#include <errno.h>
#include <netdb.h>
#include <sys/types.h>
@@ -47,7 +46,7 @@ static void usage() {
fprintf(stderr, "%s",
"ii - irc it - " VERSION "\n"
"(C)opyright MMV-MMVI Anselm R. Garbe\n"
- "(C)opyright MMV-MMVII Nico Golde\n"
+ "(C)opyright MMV-MMXI Nico Golde\n"
"usage: ii [-i <irc dir>] [-s <host>] [-p <port>]\n"
" [-n <nick>] [-k <password>] [-f <fullname>]…
exit(EXIT_SUCCESS);
@@ -82,16 +81,16 @@ static void create_dirtree(const char *dir) {
static int get_filepath(char *filepath, size_t len, char *channel, char *file)…
if(channel) {
- if(!snprintf(filepath, len, "%s/%s", path, striplower(channel)…
+ if(!snprintf(filepath, len, "%s/%s", path, channel))
return 0;
create_dirtree(filepath);
- return snprintf(filepath, len, "%s/%s/%s", path, striplower(ch…
+ return snprintf(filepath, len, "%s/%s/%s", path, channel, file…
}
return snprintf(filepath, len, "%s/%s", path, file);
}
static void create_filepath(char *filepath, size_t len, char *channel, char *s…
- if(!get_filepath(filepath, len, channel, suffix)) {
+ if(!get_filepath(filepath, len, striplower(channel), suffix)) {
fprintf(stderr, "%s", "ii: path to irc directory too long\n");
exit(EXIT_FAILURE);
}
@@ -105,9 +104,10 @@ static int open_channel(char *name) {
return open(infile, O_RDONLY | O_NONBLOCK, 0);
}
-static void add_channel(char *name) {
+static void add_channel(char *cname) {
Channel *c;
int fd;
+ char *name = striplower(cname);
for(c = channels; c; c = c->next)
if(!strcmp(name, c->name))
@@ -234,7 +234,7 @@ static void proc_channels_input(Channel *c, char *buf) {
return;
}
message[0] = '\0';
- switch (buf[1]) {
+ if(buf[2] == ' ' || buf[2] == '\0') switch (buf[1]) {
case 'j':
p = strchr(&buf[3], ' ');
if(p) *p = 0;
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.