From: Jonathan Nieder <jrnieder@gmail.com>
To: Ramkumar Ramachandra <artagnon@gmail.com>
Cc: David Barr <david.barr@cordelta.com>,
Git Mailing List <git@vger.kernel.org>,
Sverre Rabbelier <srabbelier@gmail.com>,
"Shawn O. Pearce" <spearce@spearce.org>
Subject: Re: [PATCH 1/5] fast-import: Let importers retrieve blobs
Date: Mon, 18 Oct 2010 03:50:02 -0500 [thread overview]
Message-ID: <20101018085002.GC3979@burratino> (raw)
In-Reply-To: <20101018073605.GF22376@kytes>
Ramkumar Ramachandra wrote:
> Note to self: I didn't notice write_in_full in wrapper.c
> earlier. Returns the actual size written to the fd from the buffer.
Yeah, write_in_full() is write() without the partial-read semantics
when interrupted by a signal, on Windows, or encountering an empty
pipe.
>> +static void option_cat_blob_fd(const char *fd)
>> +{
>> + unsigned long n = strtoul(fd, NULL, 0);
>> + if (n > (unsigned long) INT_MAX)
>> + die("--cat-blob-fd cannot exceed %d", INT_MAX);
>> + cat_blob_fd = (int) n;
>> +}
>> +
>
> You don't display an appropriate error when n < 0.
How can n be < 0? strtoul returns an unsigned long.
But more to the point, yes, this does not return an appropriate
error when "--cat-blob-fd=" is not followed by an unsigned
integer. At least it's consistent with --depth=nonsense et al.
Rough patch below (needs tests).
> Ok. I'm eager to see this go through to `master`.
> Reviewed-by: Ramkumar Ramachandra <artagnon@gmail.com>
Thanks.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
diff --git a/fast-import.c b/fast-import.c
index eb6860d..20023c1 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -2822,16 +2822,25 @@ static void option_date_format(const char *fmt)
die("unknown --date-format argument %s", fmt);
}
+static unsigned long ulong_arg(const char *arg)
+{
+ char *endptr;
+ unsigned long rv = strtoul(arg, &endptr, 0);
+ if (endptr == arg || *endptr)
+ die("%s: argument must be an unsigned integer", arg);
+ return rv;
+}
+
static void option_depth(const char *depth)
{
- max_depth = strtoul(depth, NULL, 0);
+ max_depth = ulong_arg(depth);
if (max_depth > MAX_DEPTH)
die("--depth cannot exceed %u", MAX_DEPTH);
}
static void option_active_branches(const char *branches)
{
- max_active_branches = strtoul(branches, NULL, 0);
+ max_active_branches = ulong_arg(branches);
}
static void option_export_marks(const char *marks)
@@ -2842,7 +2851,7 @@ static void option_export_marks(const char *marks)
static void option_cat_blob_fd(const char *fd)
{
- unsigned long n = strtoul(fd, NULL, 0);
+ unsigned long n = ulong_arg(fd);
if (n > (unsigned long) INT_MAX)
die("--cat-blob-fd cannot exceed %d", INT_MAX);
cat_blob_fd = (int) n;
next prev parent reply other threads:[~2010-10-18 8:53 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-15 12:54 [PATCHv2] Add support for subversion dump format v3 David Barr
2010-10-15 12:54 ` [PATCH 1/5] fast-import: Let importers retrieve blobs David Barr
2010-10-18 7:36 ` Ramkumar Ramachandra
2010-10-18 8:50 ` Jonathan Nieder [this message]
2010-10-18 8:26 ` Jonathan Nieder
[not found] ` <20101119093530.GA19061@burratino>
2010-11-19 9:47 ` [PATCH 3/4] fast-import: let " Jonathan Nieder
2010-11-19 9:51 ` [PATCH 4/4] fast-import: Allow cat-blob requests at arbitrary points in stream Jonathan Nieder
[not found] ` <20101119094045.GC19061@burratino>
2010-11-19 11:58 ` [PATCH 2/4] fast-import: clarify documentation of "feature" command Sverre Rabbelier
2010-11-28 19:41 ` [PATCH/RFC v3 resend 0/4] fast-import: Let importers retrieve blobs Jonathan Nieder
2010-11-28 19:42 ` [PATCH 1/4] fast-import: stricter parsing of integer options Jonathan Nieder
2010-11-30 1:01 ` Junio C Hamano
2010-11-28 19:43 ` [PATCH 2/4] fast-import: clarify documentation of "feature" command Jonathan Nieder
2010-11-28 19:45 ` [PATCH 3/4] fast-import: let importers retrieve blobs Jonathan Nieder
2010-11-29 23:48 ` [PATCH] fixup! " David Barr
2010-11-30 0:16 ` David Barr
2010-11-30 1:22 ` Jonathan Nieder
2010-12-03 10:30 ` [PATCH 3/4] " Thomas Rast
2010-12-03 19:06 ` Jonathan Nieder
2010-12-03 20:17 ` Junio C Hamano
2010-12-03 20:26 ` Jonathan Nieder
2010-12-04 13:24 ` Thomas Rast
2010-12-04 2:35 ` Jonathan Nieder
2011-01-16 2:16 ` [PATCH] Documentation/fast-import: capitalize beginning of sentence Jonathan Nieder
2010-11-28 19:45 ` [PATCH 4/4] fast-import: Allow cat-blob requests at arbitrary points in stream Jonathan Nieder
2010-10-15 12:54 ` [PATCH 2/5] vcs-svn: Extend svndump to parse version 3 format David Barr
2010-10-15 12:54 ` [PATCH 3/5] vcs-svn: Implement prop-delta handling David Barr
2010-10-18 15:10 ` Ramkumar Ramachandra
2010-10-15 12:54 ` [PATCH 4/5] vcs-svn: Add outfile option to buffer_copy_bytes() David Barr
2010-10-18 8:59 ` Jonathan Nieder
2010-10-15 12:54 ` [PATCH 5/5] svn-fe: Use the cat-blob command to apply deltas David Barr
2010-10-18 6:57 ` Ramkumar Ramachandra
2010-10-18 9:24 ` Jonathan Nieder
2010-10-18 12:18 ` Ramkumar Ramachandra
2010-10-18 9:54 ` [PATCHv2] Add support for subversion dump format v3 Jonathan Nieder
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20101018085002.GC3979@burratino \
--to=jrnieder@gmail.com \
--cc=artagnon@gmail.com \
--cc=david.barr@cordelta.com \
--cc=git@vger.kernel.org \
--cc=spearce@spearce.org \
--cc=srabbelier@gmail.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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.