[cfe-dev] [PATCH] [libc++] Ensure std::getline always 0-terminates string.
Reimar Döffinger via cfe-dev
cfe-dev at lists.llvm.org
Thu Sep 7 23:59:01 PDT 2017
Could someone please take care of and clean up your contribution documentation?
This is the only project I have heard of where patches are discussed on the commits list (some seriously bad naming), that really should be in BOLD but instead https://libcxx.llvm.org/ only links to the subscription page for cfe-dev, https://llvm.org/docs/DeveloperPolicy.html is rather wishy-washy about it, and the bugzilla doesn't even accept account creation without going via email.
I've seen one-person projects handling it better and not having the gall on top of it to write in the documentation as number 2 goal "Make life as simple and easy for contributors as possible."
I mean seriously, gcc with its copyright assignment hassle is not the reference to shoot for...
On 08.09.2017, at 08:38, Shoaib Meenai <smeenai at fb.com> wrote:
> Patches should go to cfe-commits, not cfe-dev. You can also use Phabricator.
>
> On 9/7/17, 11:17 PM, "cfe-dev on behalf of Reimar Döffinger via cfe-dev" <cfe-dev-bounces at lists.llvm.org on behalf of cfe-dev at lists.llvm.org> wrote:
>
> If the sentinel failed (e.g. due to having reached
> EOF before) or an exception was caught it failed to
> do that.
> While it seems (unfortunately!) not required by the
> specification, libstdc++ does 0-terminate and not
> doing so risks creating security issues in applications.
> ---
> include/istream | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/include/istream b/include/istream
> index 0b8e05d95..5c73df38f 100644
> --- a/include/istream
> +++ b/include/istream
> @@ -1069,16 +1069,18 @@ basic_istream<_CharT, _Traits>::getline(char_type* __s, streamsize __n, char_typ
> this->rdbuf()->sbumpc();
> ++__gc_;
> }
> - if (__n > 0)
> - *__s = char_type();
> if (__gc_ == 0)
> __err |= ios_base::failbit;
> this->setstate(__err);
> }
> + if (__n > 0)
> + *__s = char_type();
> #ifndef _LIBCPP_NO_EXCEPTIONS
> }
> catch (...)
> {
> + if (__n > 0)
> + *__s = char_type();
> this->__set_badbit_and_consider_rethrow();
> }
> #endif // _LIBCPP_NO_EXCEPTIONS
> --
> 2.14.1
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_cfe-2Ddev&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=95AJ9O-xGF4otV8l7rSJB5hfLhWipgF4HSBqW_3JVTE&s=rySnF8MixjXB7ean9Q0m80CHp4mVxvRnvCj3g6O_hSU&e=
>
>
More information about the cfe-dev
mailing list