Commit Graph

409 Commits

Author SHA1 Message Date
Will Pazner
d3a82c5e45 Fix format string errors in sscanf 2020-11-19 20:50:36 -08:00
Lee Thomason
2e6912bf8a Merge pull request #816 from a-lunkov/master
Suppress UndefinedBehaviorSanitizer warnings
2020-06-13 17:52:03 -07:00
Lee Thomason
1578df3bf8 Merge pull request #811 from hyperair/fix-first-line-indentation
XMLPrinter: Fix first line indentation
2020-06-13 17:38:20 -07:00
Lee Thomason
18468b8cc4 minor changes to hex parsing 2020-06-13 17:35:21 -07:00
Lee Thomason
c9c9d8cdfa Merge branch 'master' of https://github.com/netcan/tinyxml2 into netcan-master 2020-06-13 17:26:30 -07:00
a-lunkov
a953b9565d Suppress UndefinedBehaviorSanitizer warnings
I compiled tinyxml2 with the following changes to CMakeLists.txt:
-------------------------------------------------- ------------------------------------------
set (CMAKE_C_COMPILER "/ usr / local / bin / clang10")
set (CMAKE_CXX_COMPILER "/ usr / local / bin / clang ++ 10")
add_compile_options (-g)
add_compile_options (-fsanitize = address, undefined, integer, alignment, bool, builtin, bounds, enum, function, nonnull-attribute, null, object-size, pointer-overflow, return, returns-nonnull-attribute, unreachable, vla-bound , vptr)

set_source_files_properties (tinyxml2.cpp tinyxml2.h
                            PROPERTIES COMPILE_FLAGS -fsanitize = address, undefined, integer, alignment, bool, builtin, bounds, enum, function, nonnull-attribute, null, object-size, pointer-overflow, return, returns-nonnull-attribute, unreachable, vla-bound , vptr)
TARGET_LINK_LIBRARIES (tinyxml2 /usr/local/llvm10/lib/clang/10.0.0/lib/freebsd/libclang_rt.asan-x86_64.a /usr/local/llvm10/lib/clang/10.0.0/lib/freebsd/libang asan_cxx-x86_64.a /usr/local/llvm10/lib/clang/10.0.0/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a /usr/local/llvm10/lib/clang/10.0.0/lib/freebsd/ libclang_rt.ubsan_standalone_cxx-x86_64.a -lpthread)
-------------------------------------------------- ------------------------------------------
(Sorry for the dirty code.)

And launched the xmltest utility:
-------------------------------------------------- ------------------------------------------
/home/qqq/17_tinyxml2/tinyxml2-master/tinyxml2.cpp:237:37: runtime error: implicit conversion from type 'char' of value -48 (8-bit, signed) to type 'unsigned char' changed the value to 208 (8-bit, unsigned)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /home/qqq/17_tinyxml2/tinyxml2-master/tinyxml2.cpp:237:37 in
/home/qqq/17_tinyxml2/tinyxml2-master/tinyxml2.cpp:243:40: runtime error: implicit conversion from type 'char' of value -96 (8-bit, signed) to type 'unsigned char' changed the value to 160 (8-bit, unsigned)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /home/qqq/17_tinyxml2/tinyxml2-master/tinyxml2.cpp:243:40 in
/home/qqq/17_tinyxml2/tinyxml2-master/tinyxml2.cpp:1912:39: runtime error: implicit conversion from type 'char' of value -48 (8-bit, signed) to type 'unsigned char' changed the value to 208 (8-bit, unsigned)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /home/qqq/17_tinyxml2/tinyxml2-master/tinyxml2.cpp:1912:39 in
-------------------------------------------------- ------------------------------------------
2020-05-13 18:24:08 +03:00
Lee Thomason
bfbcc0333d Merge pull request #809 from a-lunkov/patch-1
Fix for build with FreeBSD
2020-03-31 15:09:26 -07:00
Chow Loong Jin
6a514399c2 XMLPrinter: Fix first line indentation
Fix indentation of first line when called with !compactMode.
2020-03-26 17:04:41 +08:00
a-lunkov
63fb154ad3 Update tinyxml2.cpp 2020-03-24 14:30:52 +03:00
John Senneker
1fdee25d11 Sharpened check for 64-bit Unix when defining fseek/ftell macros.
This fixes the issues with VxWorks, as mentioned by @razr in #786.
2020-03-17 14:11:25 -04:00
Lee Thomason
67271b1fd2 Merge pull request #787 from jsenn/feature/large-file-support
Added support for files larger than ~2GB
2020-03-10 14:21:04 -07:00
John Senneker
a9f29b74d9 Fixed warning caused by sloppy conversion between signed/unsigned types.
Also, the comparison between size_t max and the actual file size is done
as an unsigned long long, since that type is guaranteed to be at least
64 bits, even on a 32-bit architecture.
2020-03-02 11:04:57 -05:00
netcan
dfb45cb73b support IntText(),UnsignedText(),Int64Text() for hex value 2020-03-02 22:26:03 +08:00
Lee Thomason
bbbb8c9a90 Merge branch 'master' of github.com:leethomason/tinyxml2 2020-03-01 17:11:07 -08:00
Lee Thomason
e444268103 add convenience methods 2020-03-01 17:10:38 -08:00
Lee Thomason
6ac05b2b9a Merge branch 'push' of https://github.com/ngc92/tinyxml2 into ngc92-push 2020-03-01 17:01:33 -08:00
Lee Thomason
655b15c078 Merge pull request #781 from daniel347x/patch-1
Change constants used in 'ToBool' to support MSVC
2020-03-01 16:53:40 -08:00
Lee Thomason
20f2d5eec7 Merge pull request #773 from Alanscut/fix_issue712
fix issue#712
2020-03-01 16:47:19 -08:00
ngc92
e620245043 PushNewChild* family of convenience functions 2019-12-03 16:25:53 +01:00
John Senneker
d58436c4bd Fixed bug caused by type checking code in LoadFile.
Since the file offset is now represented in all cases as a `long long`,
the previous check comparing the sizes of `unsigned long` and `size_t`
no longer makes sense.
2019-11-19 11:40:43 -05:00
John Senneker
bf59a2d4c8 Added support for files larger than ~2GB.
This implements #786.

TinyXML reads the entire file into a pre-allocated buffer in memory. To
get the buffer size, it uses `fseek()` to seek to the end of the file,
and `ftell()` to get the current byte offset. But because `ftell()`
returns a 32-bit signed value, it can only represent byte offsets, hence
file sizes, up to about 2GB.

To get around this, `fseek` and `ftell` have been replaced by the
`TIXML_FSEEK` and `TIXML_FTELL` macros, respectively, which will resolve
to 64-bit versions of these functions on platforms that have them.
2019-11-19 11:00:52 -05:00
Dan Nissenbaum
d7455034ea Change constants used in 'ToBool' to support MSVC
The tokens `TRUE` and `FALSE` are defined in current versions of MSVC, breaking compilation of tinyxml2.cpp in MSVC due to the use of these tokens as variable names in the function `XMLUtil::ToBool`.

Simply changing the variable names to something else resolves the problem.
2019-10-24 23:57:45 -04:00
Alanscut
ad7bdf9ed2 fix issue#712 2019-09-21 15:51:14 +08:00
orbitcowboy
73f5409b62 Improved const correctness. There are no functional changes intended. 2019-08-14 09:30:30 +02:00
Lee Thomason
5bf58f0d1f Merge pull request #753 from orbitcowboy/master
Fixed -Wold-style-cast warnings from g++.
2019-08-10 17:53:39 -07:00
Lee Thomason
c3601c62f6 Merge branch 'cugone-master' 2019-08-10 17:50:53 -07:00
Lee Thomason
effdf95f8c add test cases 2019-08-10 17:49:42 -07:00
Lee Thomason
7fd646a8a2 support more bool options 2019-08-10 17:40:19 -07:00
aaronkirkham07@gmail.com
c341cea501 add missing uint64_t methods to XMLPrinter
add missing XMLElement::Unsigned64Attribute body
2019-05-22 00:05:27 +01:00
orbitcowboy
710a3324f4 Fixed -Wold-style-cast warnings from g++. 2019-05-16 15:30:47 +02:00
cugone
1dbfe31858 Missing uint64_t XMLElement::Unsigned64Text(uint64_t defaultValue) implementation 2019-04-12 17:33:49 -05:00
cugone
47e229e189 Forgot Text and XMLElement versions; 2019-04-12 17:27:28 -05:00
cugone
75a5acc6bb UnsignedInt64 support 2019-04-11 22:03:43 -05:00
orbitcowboy
0e7f289590 Improved const correctness of local variables. There are no functional changes intended. 2019-01-15 11:28:49 +01:00
Lee Thomason
db13a82e62 fix huge number of declaration security issue 2018-07-28 14:56:20 -07:00
Lee Thomason
92fc089e17 remove deprecated errors. next version will be major. 2018-06-29 15:51:37 -07:00
Lee Thomason
30d0c3d5f2 add assertion 2018-06-29 15:47:37 -07:00
Derek Quam
be69ae6352 In PrintString, move the optimization under the if ( _processEntities ) block and retain the strlen Write in the new else block. Added a test case. 2018-04-18 13:40:55 -05:00
Lee Thomason
befc3c3ae7 fix compiler inconsistency 2018-04-05 15:53:14 -07:00
Lee Thomason
f928c35186 clean up the depth tracking a bit 2018-04-05 09:24:20 -07:00
Lee Thomason
d946ddadc2 upgrade to vs2017. fix stack overflow attack. 2018-04-05 09:11:08 -07:00
Gumichan01
0f1fa6d271 fix "dereference before null check" defect
See issue #654
2018-02-01 14:27:43 +01:00
Peter Matula
50689919b7 rename DEBUG define to TINYXML2_DEBUG
The original name is to general. This prevents possible name collisions with other defines, enums, etc. from projects where tinyxml2 is used.
2018-01-09 12:52:26 +01:00
Lee Thomason
ff97dbb2cc Merge branch 'master' into error-str 2017-12-29 09:11:27 -08:00
Lee Thomason
a36f7ac776 fix error string output when there is no formatting 2017-12-28 13:48:54 -08:00
Alex Alabuzhev
90e69c95ef Suppress MSVC warning C4267: conversion from 'size_t' to 'int', possible loss of data 2017-11-09 00:33:05 +00:00
Lee Thomason
d548b7e717 Merge branch 'master' into errorstr 2017-11-01 07:52:46 -07:00
Lee Thomason
eb2f51e63b removed unused variables 2017-11-01 07:52:43 -07:00
Brad Anderson
85aac02172 Minor performance tweaks 2017-10-24 21:48:28 -06:00
Alexander Golubev
b2e08e4bc0 XMLPrinter optimization
Stream writing to buffer will be x5 faster
2017-10-24 17:31:33 -06:00