#include <pop.h>
#ifdef sun
#include <malloc.h>
-#else
-extern char *malloc (/* unsigned */);
-extern char *realloc (/* char *, unsigned */);
-extern void free (/* char * */);
#endif
#endif
#ifdef HESIOD
extern struct servent *hes_getservbyname (/* char *, char * */);
#endif
#include <pwd.h>
-#include <string.h>
-#include <strings.h>
#include <netdb.h>
#include <errno.h>
#include <stdio.h>
#ifdef KERBEROS
#ifndef KRB5
-#include <krb.h>
#include <des.h>
+#include <krb.h>
#else /* KRB5 */
#include <krb5/krb5.h>
#include <krb5/ext-proto.h>
#endif
static void pop_trash (/* popserver */);
+static char *my_strstr ();
+
#define ERROR_MAX 80 /* a pretty arbitrary size */
#define POP_PORT 110
#define KPOP_PORT 1109
if (server->data)
{
- char *cp = strstr (server->buffer + server->buffer_index, "\r\n");
+ char *cp = my_strstr (server->buffer + server->buffer_index, "\r\n");
if (cp)
{
int found;
}
}
ret = read (server->file, server->buffer + server->data,
- server->buffer_size - server->data);
+ server->buffer_size - server->data - 1);
if (ret < 0)
{
strcpy (pop_error, GETLINE_ERROR);
}
else
{
- char *cp = strstr (server->buffer, "\r\n");
+ char *cp;
server->data += ret;
+ server->buffer[server->data] = '\0';
+ cp = my_strstr (server->buffer, "\r\n");
if (cp)
{
int data_used = (cp + 2) - server->buffer;