summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorplutooo <tfy12vbr@student.lu.se>2013-08-01 13:15:55 -0700
committerirungentoo <irungentoo@gmail.com>2013-08-01 16:28:48 -0400
commit9fbff0c7589166c185c6885b0d67b2402228e8b6 (patch)
treef8a53068bd2e897e581a8af77e4919c0e8d61076
parentebf3d662fe03f1a9c192b1d8805ea3b6f453ab81 (diff)
nTox: fixed 2 possible crashes, 3 incorrect packet lengths
-rw-r--r--testing/nTox.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/testing/nTox.c b/testing/nTox.c
index f87a2a25..de75d2ff 100644
--- a/testing/nTox.c
+++ b/testing/nTox.c
@@ -133,6 +133,9 @@ void line_eval(char lines[HISTORY][STRING_LENGTH], char *line)
133 } 133 }
134 else if (inpt_command == 'm') { //message command: /m friendnumber messsage 134 else if (inpt_command == 'm') { //message command: /m friendnumber messsage
135 size_t len = strlen(line); 135 size_t len = strlen(line);
136 if(len < 3)
137 return;
138
136 char numstring[len-3]; 139 char numstring[len-3];
137 char message[len-3]; 140 char message[len-3];
138 int i; 141 int i;
@@ -141,13 +144,13 @@ void line_eval(char lines[HISTORY][STRING_LENGTH], char *line)
141 numstring[i] = line[i+3]; 144 numstring[i] = line[i+3];
142 } else { 145 } else {
143 int j; 146 int j;
144 for (j = (i+1); j < len; j++) 147 for (j = (i+1); j < (len+1); j++)
145 message[j-i-1] = line[j+3]; 148 message[j-i-1] = line[j+3];
146 break; 149 break;
147 } 150 }
148 } 151 }
149 int num = atoi(numstring); 152 int num = atoi(numstring);
150 if (m_sendmessage(num, (uint8_t*) message, sizeof(message)) != 1) { 153 if (m_sendmessage(num, (uint8_t*) message, strlen(message) + 1) != 1) {
151 new_lines("[i] could not send message"); 154 new_lines("[i] could not send message");
152 } else { 155 } else {
153 new_lines(format_message(message, -1)); 156 new_lines(format_message(message, -1));
@@ -162,7 +165,7 @@ void line_eval(char lines[HISTORY][STRING_LENGTH], char *line)
162 name[i-3] = line[i]; 165 name[i-3] = line[i];
163 } 166 }
164 name[i-3] = 0; 167 name[i-3] = 0;
165 setname(name, i); 168 setname(name, i - 2);
166 char numstring[100]; 169 char numstring[100];
167 sprintf(numstring, "[i] changed nick to %s", (char*)name); 170 sprintf(numstring, "[i] changed nick to %s", (char*)name);
168 new_lines(numstring); 171 new_lines(numstring);
@@ -179,7 +182,7 @@ void line_eval(char lines[HISTORY][STRING_LENGTH], char *line)
179 status[i-3] = line[i]; 182 status[i-3] = line[i];
180 } 183 }
181 status[i-3] = 0; 184 status[i-3] = 0;
182 m_set_userstatus(status, strlen((char*)status)); 185 m_set_userstatus(status, strlen((char*)status) + 1);
183 char numstring[100]; 186 char numstring[100];
184 sprintf(numstring, "[i] changed status to %s", (char*)status); 187 sprintf(numstring, "[i] changed status to %s", (char*)status);
185 new_lines(numstring); 188 new_lines(numstring);