From: Michael Haggerty <mhagger@alum.mit.edu>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, Jeremy White <jwhite@codeweavers.com>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Michael Haggerty <mhagger@alum.mit.edu>
Subject: [PATCH 3/8] lf_to_crlf(): NUL-terminate msg_data::data
Date: Sun, 25 Nov 2012 12:08:36 +0100 [thread overview]
Message-ID: <1353841721-16269-4-git-send-email-mhagger@alum.mit.edu> (raw)
In-Reply-To: <1353841721-16269-1-git-send-email-mhagger@alum.mit.edu>
Through the rest of the file, the data member of struct msg_data is
kept NUL-terminated, and that fact is relied upon in a couple of
places. Change lf_to_crlf() to preserve this invariant.
In fact, there are no execution paths in which lf_to_crlf() is called
and then its data member is required to be NUL-terminated, but it is
better to be consistent to prevent future confusion.
Document the invariant in the struct msg_data definition.
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
---
imap-send.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/imap-send.c b/imap-send.c
index d42e471..c818b0c 100644
--- a/imap-send.c
+++ b/imap-send.c
@@ -69,8 +69,12 @@ struct store {
};
struct msg_data {
+ /* NUL-terminated data: */
char *data;
+
+ /* length of data (not including NUL): */
int len;
+
unsigned char flags;
};
@@ -1276,7 +1280,7 @@ static void lf_to_crlf(struct msg_data *msg)
lfnum++;
}
- new = xmalloc(msg->len + lfnum);
+ new = xmalloc(msg->len + lfnum + 1);
if (msg->data[0] == '\n') {
new[0] = '\r';
new[1] = '\n';
@@ -1297,6 +1301,7 @@ static void lf_to_crlf(struct msg_data *msg)
/* otherwise it already had CR before */
new[j++] = '\n';
}
+ new[j] = '\0';
msg->len += lfnum;
free(msg->data);
msg->data = new;
--
1.8.0
next prev parent reply other threads:[~2012-11-25 11:09 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-25 11:08 [PATCH 0/8] Add function strbuf_addstr_xml_quoted() and more Michael Haggerty
2012-11-25 11:08 ` [PATCH 1/8] Add new function strbuf_add_xml_quoted() Michael Haggerty
2012-11-25 11:08 ` [PATCH 2/8] xml_entities(): use function strbuf_addstr_xml_quoted() Michael Haggerty
2012-11-25 11:08 ` Michael Haggerty [this message]
2012-11-25 11:08 ` [PATCH 4/8] imap-send: store all_msgs as a strbuf Michael Haggerty
2012-11-25 11:08 ` [PATCH 5/8] imap-send: correctly report errors reading from stdin Michael Haggerty
2012-11-25 11:08 ` [PATCH 6/8] imap-send: change msg_data from storing (char *, len) to storing strbuf Michael Haggerty
2012-11-29 21:30 ` Junio C Hamano
2012-11-29 23:43 ` Jeff King
2012-11-30 13:36 ` Michael Haggerty
2012-12-02 1:48 ` Junio C Hamano
2012-12-02 6:03 ` Michael Haggerty
2012-12-03 15:06 ` Thiago Farina
2012-11-25 11:08 ` [PATCH 7/8] wrap_in_html(): use strbuf_addstr_xml_quoted() Michael Haggerty
2012-11-29 21:41 ` [PATCH 0/8] Add function strbuf_addstr_xml_quoted() and more Junio C Hamano
[not found] ` <1353841721-16269-9-git-send-email-mhagger@alum.mit.edu>
[not found] ` <7v7gp4p00u.fsf@alter.siamese.dyndns.org>
2012-11-30 13:40 ` [PATCH 8/8] wrap_in_html(): process message in bulk rather than line-by-line Michael Haggerty
2012-12-02 9:25 ` Junio C Hamano
2012-12-02 10:35 ` Michael Haggerty
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1353841721-16269-4-git-send-email-mhagger@alum.mit.edu \
--to=mhagger@alum.mit.edu \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jwhite@codeweavers.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).