Browse Source

ssmtp: more pointer fixes

- fixed more pointer issues
- remove unused variable

Signed-off-by: Dirk Brenken <dibdot@gmail.com>
Dirk Brenken 10 years ago
parent
commit
133d4beec4
1 changed files with 93 additions and 28 deletions
  1. 93
    28
      mail/ssmtp/patches/002-fix_pointer.patch

+ 93
- 28
mail/ssmtp/patches/002-fix_pointer.patch View File

68
  	}
68
  	}
69
  	(void)strip_post_ws(p);
69
  	(void)strip_post_ws(p);
70
  
70
  
71
-@@ -363,7 +363,7 @@ bool_t standardise(char *str, bool_t *li
71
+@@ -349,7 +349,6 @@ standardise() -- Trim off '\n's and doub
72
+ */
73
+ bool_t standardise(char *str, bool_t *linestart)
74
+ {
75
+-	size_t sl;
76
+ 	char *p;
77
+ 	bool_t leadingdot = False;
78
+ 
79
+@@ -363,7 +362,7 @@ bool_t standardise(char *str, bool_t *li
72
  	*linestart = False;
80
  	*linestart = False;
73
  
81
  
74
  	if((p = strchr(str, '\n'))) {
82
  	if((p = strchr(str, '\n'))) {
77
  		*linestart = True;
85
  		*linestart = True;
78
  	}
86
  	}
79
  	return(leadingdot);
87
  	return(leadingdot);
80
-@@ -384,7 +384,7 @@ void revaliases(struct passwd *pw)
88
+@@ -384,7 +383,7 @@ void revaliases(struct passwd *pw)
81
  		while(fgets(buf, sizeof(buf), fp)) {
89
  		while(fgets(buf, sizeof(buf), fp)) {
82
  			/* Make comments invisible */
90
  			/* Make comments invisible */
83
  			if((p = strchr(buf, '#'))) {
91
  			if((p = strchr(buf, '#'))) {
86
  			}
94
  			}
87
  
95
  
88
  			/* Ignore malformed lines and comments */
96
  			/* Ignore malformed lines and comments */
89
-@@ -519,11 +519,11 @@ void rcpt_save(char *str)
97
+@@ -519,11 +518,11 @@ void rcpt_save(char *str)
90
  #endif
98
  #endif
91
  
99
  
92
  	/* Ignore missing usernames */
100
  	/* Ignore missing usernames */
100
  		die("rcpt_save() -- strdup() failed");
108
  		die("rcpt_save() -- strdup() failed");
101
  	}
109
  	}
102
  
110
  
103
-@@ -548,7 +548,7 @@ void rcpt_parse(char *str)
111
+@@ -548,7 +547,7 @@ void rcpt_parse(char *str)
104
  	(void)fprintf(stderr, "*** rcpt_parse(): str = [%s]\n", str);
112
  	(void)fprintf(stderr, "*** rcpt_parse(): str = [%s]\n", str);
105
  #endif
113
  #endif
106
  
114
  
109
  		die("rcpt_parse(): strdup() failed");
117
  		die("rcpt_parse(): strdup() failed");
110
  	}
118
  	}
111
  	q = p;
119
  	q = p;
112
-@@ -576,7 +576,7 @@ void rcpt_parse(char *str)
120
+@@ -576,7 +575,7 @@ void rcpt_parse(char *str)
113
  		}
121
  		}
114
  
122
  
115
  		/* End of string? */
123
  		/* End of string? */
118
  			got_addr = True;
126
  			got_addr = True;
119
  		}
127
  		}
120
  
128
  
121
-@@ -584,7 +584,7 @@ void rcpt_parse(char *str)
129
+@@ -584,7 +583,7 @@ void rcpt_parse(char *str)
122
  		if((*q == ',') && (in_quotes == False)) {
130
  		if((*q == ',') && (in_quotes == False)) {
123
  			got_addr = True;
131
  			got_addr = True;
124
  
132
  
127
  		}
135
  		}
128
  
136
  
129
  		if(got_addr) {
137
  		if(got_addr) {
130
-@@ -668,7 +668,7 @@ void header_save(char *str)
138
+@@ -668,7 +667,7 @@ void header_save(char *str)
131
  	(void)fprintf(stderr, "header_save(): str = [%s]\n", str);
139
  	(void)fprintf(stderr, "header_save(): str = [%s]\n", str);
132
  #endif
140
  #endif
133
  
141
  
136
  		die("header_save() -- strdup() failed");
144
  		die("header_save() -- strdup() failed");
137
  	}
145
  	}
138
  	ht->string = p;
146
  	ht->string = p;
139
-@@ -676,7 +676,7 @@ void header_save(char *str)
147
+@@ -676,7 +675,7 @@ void header_save(char *str)
140
  	if(strncasecmp(ht->string, "From:", 5) == 0) {
148
  	if(strncasecmp(ht->string, "From:", 5) == 0) {
141
  #if 1
149
  #if 1
142
  		/* Hack check for NULL From: line */
150
  		/* Hack check for NULL From: line */
145
  			return;
153
  			return;
146
  		}
154
  		}
147
  #endif
155
  #endif
148
-@@ -739,19 +739,19 @@ header_parse() -- Break headers into sep
156
+@@ -739,19 +738,19 @@ header_parse() -- Break headers into sep
149
  void header_parse(FILE *stream)
157
  void header_parse(FILE *stream)
150
  {
158
  {
151
  	size_t size = BUF_SZ, len = 0;
159
  	size_t size = BUF_SZ, len = 0;
169
  				die("header_parse() -- realloc() failed");
177
  				die("header_parse() -- realloc() failed");
170
  			}
178
  			}
171
  			q = (p + len);
179
  			q = (p + len);
172
-@@ -776,9 +776,9 @@ void header_parse(FILE *stream)
180
+@@ -776,9 +775,9 @@ void header_parse(FILE *stream)
173
  						in_header = False;
181
  						in_header = False;
174
  
182
  
175
  				default:
183
  				default:
181
  						}
189
  						}
182
  						header_save(p);
190
  						header_save(p);
183
  
191
  
184
-@@ -809,9 +809,9 @@ void header_parse(FILE *stream)
192
+@@ -809,9 +808,9 @@ void header_parse(FILE *stream)
185
  						in_header = False;
193
  						in_header = False;
186
  
194
  
187
  				default:
195
  				default:
193
  						}
201
  						}
194
  						header_save(p);
202
  						header_save(p);
195
  
203
  
196
-@@ -876,11 +876,11 @@ bool_t read_config()
204
+@@ -876,11 +875,11 @@ bool_t read_config()
197
  		char *rightside;
205
  		char *rightside;
198
  		/* Make comments invisible */
206
  		/* Make comments invisible */
199
  		if((p = strchr(buf, '#'))) {
207
  		if((p = strchr(buf, '#'))) {
207
  
215
  
208
  		/* Parse out keywords */
216
  		/* Parse out keywords */
209
  		p=firsttok(&begin, "= \t\n");
217
  		p=firsttok(&begin, "= \t\n");
210
-@@ -890,7 +890,7 @@ bool_t read_config()
218
+@@ -890,7 +889,7 @@ bool_t read_config()
211
  		}
219
  		}
212
  		if(p && q) {
220
  		if(p && q) {
213
  			if(strcasecmp(p, "Root") == 0) {
221
  			if(strcasecmp(p, "Root") == 0) {
216
  					die("parse_config() -- strdup() failed");
224
  					die("parse_config() -- strdup() failed");
217
  				}
225
  				}
218
  
226
  
219
-@@ -904,7 +904,7 @@ bool_t read_config()
227
+@@ -904,7 +903,7 @@ bool_t read_config()
220
  					port = atoi(r);
228
  					port = atoi(r);
221
  				}
229
  				}
222
  
230
  
225
  					die("parse_config() -- strdup() failed");
233
  					die("parse_config() -- strdup() failed");
226
  				}
234
  				}
227
  
235
  
228
-@@ -949,7 +949,7 @@ bool_t read_config()
236
+@@ -949,7 +948,7 @@ bool_t read_config()
229
  					mail_domain = strdup(q);
237
  					mail_domain = strdup(q);
230
  				}
238
  				}
231
  
239
  
234
  					die("parse_config() -- strdup() failed");
242
  					die("parse_config() -- strdup() failed");
235
  				}
243
  				}
236
  				rewrite_domain = True;
244
  				rewrite_domain = True;
237
-@@ -1025,7 +1025,7 @@ bool_t read_config()
245
+@@ -1025,7 +1024,7 @@ bool_t read_config()
238
  				}
246
  				}
239
  			}
247
  			}
240
  			else if(strcasecmp(p, "TLSCert") == 0) {
248
  			else if(strcasecmp(p, "TLSCert") == 0) {
243
  					die("parse_config() -- strdup() failed");
251
  					die("parse_config() -- strdup() failed");
244
  				}
252
  				}
245
  
253
  
246
-@@ -1036,7 +1036,7 @@ bool_t read_config()
254
+@@ -1036,7 +1035,7 @@ bool_t read_config()
247
  #endif
255
  #endif
248
  			/* Command-line overrides these */
256
  			/* Command-line overrides these */
249
  			else if(strcasecmp(p, "AuthUser") == 0 && !auth_user) {
257
  			else if(strcasecmp(p, "AuthUser") == 0 && !auth_user) {
252
  					die("parse_config() -- strdup() failed");
260
  					die("parse_config() -- strdup() failed");
253
  				}
261
  				}
254
  
262
  
255
-@@ -1045,7 +1045,7 @@ bool_t read_config()
263
+@@ -1045,7 +1044,7 @@ bool_t read_config()
256
  				}
264
  				}
257
  			}
265
  			}
258
  			else if(strcasecmp(p, "AuthPass") == 0 && !auth_pass) {
266
  			else if(strcasecmp(p, "AuthPass") == 0 && !auth_pass) {
261
  					die("parse_config() -- strdup() failed");
269
  					die("parse_config() -- strdup() failed");
262
  				}
270
  				}
263
  
271
  
264
-@@ -1054,7 +1054,7 @@ bool_t read_config()
272
+@@ -1054,7 +1053,7 @@ bool_t read_config()
265
  				}
273
  				}
266
  			}
274
  			}
267
  			else if(strcasecmp(p, "AuthMethod") == 0 && !auth_method) {
275
  			else if(strcasecmp(p, "AuthMethod") == 0 && !auth_method) {
270
  					die("parse_config() -- strdup() failed");
278
  					die("parse_config() -- strdup() failed");
271
  				}
279
  				}
272
  
280
  
273
-@@ -1119,14 +1119,11 @@ int smtp_open(char *host, int port)
281
+@@ -1119,14 +1118,11 @@ int smtp_open(char *host, int port)
274
  	char buf[(BUF_SZ + 1)];
282
  	char buf[(BUF_SZ + 1)];
275
  
283
  
276
  	/* Init SSL stuff */
284
  	/* Init SSL stuff */
287
  	if(!ctx) {
295
  	if(!ctx) {
288
  		log_event(LOG_ERR, "No SSL support initiated\n");
296
  		log_event(LOG_ERR, "No SSL support initiated\n");
289
  		return(-1);
297
  		return(-1);
290
-@@ -1310,7 +1307,7 @@ char *fd_gets(char *buf, int size, int f
298
+@@ -1310,7 +1306,7 @@ char *fd_gets(char *buf, int size, int f
291
  			buf[i++] = c;
299
  			buf[i++] = c;
292
  		}
300
  		}
293
  	}
301
  	}
296
  
304
  
297
  	return(buf);
305
  	return(buf);
298
  }
306
  }
299
-@@ -1434,14 +1431,14 @@ int ssmtp(char *argv[])
307
+@@ -1434,14 +1430,14 @@ int ssmtp(char *argv[])
300
  	}
308
  	}
301
  
309
  
302
  	if((p = strtok(pw->pw_gecos, ";,"))) {
310
  	if((p = strtok(pw->pw_gecos, ";,"))) {
313
  		uad = append_domain(pw->pw_name);
321
  		uad = append_domain(pw->pw_name);
314
  	}
322
  	}
315
  
323
  
316
-@@ -1489,7 +1486,7 @@ int ssmtp(char *argv[])
324
+@@ -1489,7 +1485,7 @@ int ssmtp(char *argv[])
317
  	/* Try to log in if username was supplied */
325
  	/* Try to log in if username was supplied */
318
  	if(auth_user) {
326
  	if(auth_user) {
319
  #ifdef MD5AUTH
327
  #ifdef MD5AUTH
322
  			auth_pass = strdup("");
330
  			auth_pass = strdup("");
323
  		}
331
  		}
324
  
332
  
325
-@@ -1737,7 +1734,7 @@ char **parse_options(int argc, char *arg
333
+@@ -1508,7 +1504,7 @@ int ssmtp(char *argv[])
334
+ 		else {
335
+ #endif
336
+ 		memset(buf, 0, bufsize);
337
+-		to64frombits(buf, auth_user, strlen(auth_user));
338
++		to64frombits(buf, (unsigned char *)auth_user, strlen(auth_user));
339
+ 		if (use_oldauth) {
340
+ 			outbytes += smtp_write(sock, "AUTH LOGIN %s", buf);
341
+ 		}
342
+@@ -1520,7 +1516,7 @@ int ssmtp(char *argv[])
343
+ 			}
344
+ 			/* we assume server asked us for Username */
345
+ 			memset(buf, 0, bufsize);
346
+-			to64frombits(buf, auth_user, strlen(auth_user));
347
++			to64frombits(buf, (unsigned char *)auth_user, strlen(auth_user));
348
+ 			outbytes += smtp_write(sock, buf);
349
+ 		}
350
+ 
351
+@@ -1530,7 +1526,7 @@ int ssmtp(char *argv[])
352
+ 		}
353
+ 		memset(buf, 0, bufsize);
354
+ 
355
+-		to64frombits(buf, auth_pass, strlen(auth_pass));
356
++		to64frombits(buf, (unsigned char *)auth_pass, strlen(auth_pass));
357
+ #ifdef MD5AUTH
358
+ 		}
359
+ #endif
360
+@@ -1737,7 +1733,7 @@ char **parse_options(int argc, char *arg
326
  		j = 0;
361
  		j = 0;
327
  
362
  
328
  		add = 1;
363
  		add = 1;
331
  			switch(argv[i][j]) {
366
  			switch(argv[i][j]) {
332
  #ifdef INET6
367
  #ifdef INET6
333
  			case '6':
368
  			case '6':
334
-@@ -1755,14 +1752,14 @@ char **parse_options(int argc, char *arg
369
+@@ -1755,14 +1751,14 @@ char **parse_options(int argc, char *arg
335
  					if((!argv[i][(j + 1)])
370
  					if((!argv[i][(j + 1)])
336
  						&& argv[(i + 1)]) {
371
  						&& argv[(i + 1)]) {
337
  						auth_user = strdup(argv[i+1]);
372
  						auth_user = strdup(argv[i+1]);
348
  							die("parse_options() -- strdup() failed");
383
  							die("parse_options() -- strdup() failed");
349
  						}
384
  						}
350
  					}
385
  					}
351
-@@ -1772,14 +1769,14 @@ char **parse_options(int argc, char *arg
386
+@@ -1772,14 +1768,14 @@ char **parse_options(int argc, char *arg
352
  					if((!argv[i][(j + 1)])
387
  					if((!argv[i][(j + 1)])
353
  						&& argv[(i + 1)]) {
388
  						&& argv[(i + 1)]) {
354
  						auth_pass = strdup(argv[i+1]);
389
  						auth_pass = strdup(argv[i+1]);
365
  							die("parse_options() -- strdup() failed");
400
  							die("parse_options() -- strdup() failed");
366
  						}
401
  						}
367
  					}
402
  					}
368
-@@ -1870,14 +1867,14 @@ char **parse_options(int argc, char *arg
403
+@@ -1870,14 +1866,14 @@ char **parse_options(int argc, char *arg
369
  			case 'F':
404
  			case 'F':
370
  				if((!argv[i][(j + 1)]) && argv[(i + 1)]) {
405
  				if((!argv[i][(j + 1)]) && argv[(i + 1)]) {
371
  					minus_F = strdup(argv[(i + 1)]);
406
  					minus_F = strdup(argv[(i + 1)]);
382
  						die("parse_options() -- strdup() failed");
417
  						die("parse_options() -- strdup() failed");
383
  					}
418
  					}
384
  				}
419
  				}
385
-@@ -1889,14 +1886,14 @@ char **parse_options(int argc, char *arg
420
+@@ -1889,14 +1885,14 @@ char **parse_options(int argc, char *arg
386
  			case 'r':
421
  			case 'r':
387
  				if((!argv[i][(j + 1)]) && argv[(i + 1)]) {
422
  				if((!argv[i][(j + 1)]) && argv[(i + 1)]) {
388
  					minus_f = strdup(argv[(i + 1)]);
423
  					minus_f = strdup(argv[(i + 1)]);
399
  						die("parse_options() -- strdup() failed");
434
  						die("parse_options() -- strdup() failed");
400
  					}
435
  					}
401
  				}
436
  				}
437
+--- a/base64.c
438
++++ b/base64.c
439
+@@ -31,7 +31,7 @@ static const char base64val[] = {
440
+ };
441
+ #define DECODE64(c)  (isascii(c) ? base64val[c] : BAD)
442
+ 
443
+-void to64frombits(unsigned char *out, const unsigned char *in, int inlen)
444
++void to64frombits(char *out, const unsigned char *in, int inlen)
445
+ /* raw bytes in quasi-big-endian order to base 64 string (NUL-terminated) */
446
+ {
447
+     for (; inlen >= 3; inlen -= 3)
448
+@@ -57,7 +57,7 @@ void to64frombits(unsigned char *out, co
449
+     *out = '\0';
450
+ }
451
+ 
452
+-int from64tobits(char *out, const char *in)
453
++int from64tobits(unsigned char *out, const char *in)
454
+ /* base 64 to raw bytes in quasi-big-endian order, returning count of bytes */
455
+ {
456
+     int len = 0;
457
+--- a/ssmtp.h
458
++++ b/ssmtp.h
459
+@@ -41,5 +41,5 @@ typedef struct string_list rcpt_t;
460
+ void get_arpadate(char *);
461
+ 
462
+ /* base64.c */
463
+-void to64frombits(unsigned char *, const unsigned char *, int);
464
+-int from64tobits(char *, const char *);
465
++void to64frombits(char *, const unsigned char *, int);
466
++int from64tobits(unsigned char *, const char *);