Opened 8 years ago

Closed 8 years ago

#4858 closed Bugs (fixed)

Documentation error - Responsefile example code can crash

Reported by: boost@… Owned by: Vladimir Prus
Milestone: To Be Determined Component: program_options
Version: Boost 1.44.0 Severity: Problem
Keywords: Cc:

Description

Hello,
in the example concerning Response Files the following code has an error:

     tokenizer<char_separator<char> > tok(ss.str(), sep);
     vector<string> args;
     copy(tok.begin(), tok.end(), back_inserter(args));

ss.str() in line 1 is a temporary. tokenizer will not store a copy, just iterators, so when tok is used in line 3 it refers to an invalid string.

Code should be changed to:

     std::string ResponsefileContents( ss.str() );
     tokenizer<char_separator<char> > tok(ResponsefileContents, sep);
     vector<string> args;
     copy(tok.begin(), tok.end(), back_inserter(args));

Best regards
Sönke

Change History (2)

comment:1 Changed 8 years ago by Marshall Clow

(In [67030]) Doc fix; refs #4858

comment:2 Changed 8 years ago by Marshall Clow

Resolution: fixed
Status: newclosed

(In [67034]) Merge doc patches to release; fixes #3992, fixes #4858

Note: See TracTickets for help on using tickets.