forked from bitcoin/bitcoin
-
Notifications
You must be signed in to change notification settings - Fork 20
Prevent different deserialization behavior between segwit nodes and o… #34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
NicolasDorier
wants to merge
24
commits into
sipa:segwit3
from
NicolasDorier:fix-backcompatible-serialisation
Closed
Prevent different deserialization behavior between segwit nodes and o… #34
NicolasDorier
wants to merge
24
commits into
sipa:segwit3
from
NicolasDorier:fix-backcompatible-serialisation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Contains refactorings by Eric Lombrozo.
Includes standardness logic and v0 20-byte logic by Johnson Lau.
Includes simplifications by Eric Lombrozo.
Includes support for pushkeyhash wit v0 by Alex Morcos.
…ld nodes in case of empty input vector
sipa
pushed a commit
that referenced
this pull request
Oct 11, 2017
fe805ea Declare single-argument (non-converting) constructors "explicit" 8a2d6f1 Merge pull request #41 from jgarzik/get-obj-map ba341a2 Add getObjMap() helper method. Also, constify checkObject(). ceb1194 Handle .pushKV() and .checkObject() edge cases. 107db98 Add ::push_back(double) method for feature parity. d415300 Move one-line implementation of UniValue::read() to header. 52e85b3 Move exception-throwing get_* methods into separate implementation module. dac5296 README.md: update code quotes 3e31dcf README.md: close code quote d09b842 Update README.md f1b86ed Convert README to markdown style. 1dfe464 Import UniValue class unit tests from bitcoin project. 0d3e74d operator[] takes size_t index parameter (versus unsigned int) 640158f Private findKey() method becomes size_t clean, and returns bool on failure. 7099135 Merge pull request #36 from ryanofsky/pr/end-str a31231b Version 1.0.3 4fd5444 Reject unterminated strings 81eba33 Merge pull request #26 from isle2983/pushBackHelpers 3640541 Merge PR #32 from branch 'nul-not-special' of git://github.com/ryanofsky/univalue into merge 89bb073 Merge pull request #31 from ryanofsky/raw-literals 511008c Merge pull request #30 from ryanofsky/test-driver 77974f3 Merge pull request #34 from paveljanik/20161116_Wshadow_codepoint a38fcd3 Do not shadow member variable codepoint. fd32d1a Don't require nul-terminated string inputs 0bb1439 Support parsing raw literals in UniValue 28876d0 Merge pull request #29 from btcdrak/exportspace 839ccd7 Add test driver for JSONTestSuite 26ef3ff Remove trailing whitespace from JSON export cfa0384 Convenience wrappers for push_back-ing integer types REVERT: 16a1f7f Merge #3: Pull upstream REVERT: daf1285 Merge pull request #2 from jgarzik/master REVERT: f32df99 Merge branch '2016_04_unicode' into bitcoin REVERT: 280b191 Merge remote-tracking branch 'jgarzik/master' into bitcoin REVERT: 2740c4f Merge branch '2015_11_escape_plan' into bitcoin git-subtree-dir: src/univalue git-subtree-split: fe805ea
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
…ld nodes with empty input vector
I found out that my legacy code broke with the new transaction deserialisation code.
If I read a transaction from a storage which contains no input, then the new deserialization code will not be able to parse it. (Since it detect dummy vin, it assume wrongly that the next byte is the flag)
In my particular case this might not be relevant since a transaction should never be stored with empty vins. (I need to rewrite several unit tests though)
What is more problematic is that the processing of a tx message without txin sent by an old client will be different than before.