You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
However, this contradicts the specification in RFC 3284, Section 3:
A target window T, of length t, may be compared against some source
data segment S, of length s. [..]
Assume that S[j] represents the jth byte in S, and T[k] represents
the kth byte in T. Then, for the delta instructions, we treat the
data windows S and T as substrings of a superstring U, formed by
concatenating them like this:
S[0]S[1]...S[s-1]T[0]T[1]...T[t-1]
[..]
COPY: This instruction has two arguments, a size x and an address
p in the string U. The arguments specify the substring of U
that must be copied. We shall assert that such a substring
must be entirely contained in either S or T.
(Emphasis mine.) This last sentence seems intended to specifically forbid COPY instructions which cross the source segment/target window boundary.
The open-vcdiff implementation is still compliant because the encoder doesn't generate such instructions, but to avoid confusion about the file format, it might be helpful to:
In the encoder: remove the comment.
In the decoder: either reject inputs that contain these invalid instructions, or at least add a comment mentioning that such instructions are non-standard.
The text was updated successfully, but these errors were encountered:
In the encoder source code, it is claimed that it's possible for a COPY instruction to begin in the source segment and extend past its end, into the target window.
https://github.com/google/open-vcdiff/blob/master/src/google/vcencoder.h#L97-L102
And the decoder supports such instructions:
https://github.com/google/open-vcdiff/blob/master/src/vcdecoder.cc#L1209-L1216
However, this contradicts the specification in RFC 3284, Section 3:
(Emphasis mine.) This last sentence seems intended to specifically forbid COPY instructions which cross the source segment/target window boundary.
The open-vcdiff implementation is still compliant because the encoder doesn't generate such instructions, but to avoid confusion about the file format, it might be helpful to:
The text was updated successfully, but these errors were encountered: