summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormichael <michael@82007160-df01-0410-b94d-b575c5fd34c7>2013-07-19 15:43:53 +0000
committermichael <michael@82007160-df01-0410-b94d-b575c5fd34c7>2013-07-19 15:43:53 +0000
commitce86ae58dcf0076845ec5e2bc089228035a5fb4f (patch)
tree3d026543e6c9fa25aa0cdf322b9812c593ec6a0b
parent49b76108c272964598dc866c8728472ec1320f58 (diff)
- motd.(c|h): fixed core with zero byte length ircd.motd. Reported by Fawkes
git-svn-id: svn://svn.ircd-hybrid.org/svnroot/ircd-hybrid/branches/8.1.x@2409 82007160-df01-0410-b94d-b575c5fd34c7
-rw-r--r--include/motd.h2
-rw-r--r--src/motd.c6
2 files changed, 4 insertions, 4 deletions
diff --git a/include/motd.h b/include/motd.h
index b8b715a..e113bc4 100644
--- a/include/motd.h
+++ b/include/motd.h
@@ -69,7 +69,7 @@ struct MotdCache
unsigned int maxcount; /**< Number of lines allocated for message. */
unsigned int count; /**< Actual number of lines used in message. */
struct tm modtime; /**< Last modification time from file. */
- char motd[1][MOTD_LINESIZE]; /**< Message body. */
+ char motd[][MOTD_LINESIZE]; /**< Message body. */
};
/* motd_send sends a MOTD off to a user */
diff --git a/src/motd.c b/src/motd.c
index 4d5bde9..02c01ed 100644
--- a/src/motd.c
+++ b/src/motd.c
@@ -143,7 +143,7 @@ motd_cache(struct Motd *motd)
}
/* Ok, allocate a structure; we'll realloc later to trim memory */
- cache = MyMalloc(sizeof(struct MotdCache) + (MOTD_LINESIZE * (MOTD_MAXLINES - 1)));
+ cache = MyMalloc(sizeof(struct MotdCache) + (MOTD_LINESIZE * MOTD_MAXLINES));
cache->ref = 1;
cache->path = xstrdup(motd->path);
cache->maxcount = motd->maxcount;
@@ -163,9 +163,9 @@ motd_cache(struct Motd *motd)
/* trim memory usage a little */
motd->cache = MyMalloc(sizeof(struct MotdCache) +
- (MOTD_LINESIZE * (cache->count - 1)));
+ (MOTD_LINESIZE * cache->count));
memcpy(motd->cache, cache, sizeof(struct MotdCache) +
- (MOTD_LINESIZE * (cache->count - 1)));
+ (MOTD_LINESIZE * cache->count));
MyFree(cache);
/* now link it in... */