Author: sebor Date: Wed Apr 9 12:11:30 2008 New Revision: 646486 URL: http://svn.apache.org/viewvc?rev=646486&view=rev Log: 2008-04-09 Martin Sebor <[EMAIL PROTECTED]>
STDCXX-749 * util/time.cpp (parse_era): Checked the pointer returned from strtok() before dereferencing it and issued an error when it's null to silence HP aCC 6.16 potential null pointer dereference warning. Modified: stdcxx/trunk/util/time.cpp Modified: stdcxx/trunk/util/time.cpp URL: http://svn.apache.org/viewvc/stdcxx/trunk/util/time.cpp?rev=646486&r1=646485&r2=646486&view=diff ============================================================================== --- stdcxx/trunk/util/time.cpp (original) +++ stdcxx/trunk/util/time.cpp Wed Apr 9 12:11:30 2008 @@ -22,7 +22,7 @@ * implied. See the License for the specific language governing * permissions and limitations under the License. * - * Copyright 2001-2006 Rogue Wave Software. + * Copyright 2001-2008 Rogue Wave Software, Inc. * **************************************************************************/ @@ -67,12 +67,24 @@ // now get the offset tokp = std::strtok (0, ":"); + if (0 == tokp) + issue_diag (E_SYNTAX, true, &tok, + "expected ':' in era definition\n"); + + assert (0 != tokp); + std::sscanf (tokp, "%d", &tmp_era.era_out.offset); if (direction == '-') tmp_era.era_out.offset *= -1; // now get the start date tokp = std::strtok (0, ":"); + if (0 == tokp) + issue_diag (E_SYNTAX, true, &tok, + "expected ':' in era definition\n"); + + assert (0 != tokp); + unsigned int tmp_mon, tmp_day; std::sscanf (tokp, "%d/%u/%u", &tmp_era.era_out.year[0], &tmp_mon, &tmp_day); @@ -83,6 +95,12 @@ // now get the end date (this may be the beginning or end of time tokp = std::strtok (0, ":"); + if (0 == tokp) + issue_diag (E_SYNTAX, true, &tok, + "expected ':' in era definition\n"); + + assert (0 != tokp); + if (std::strcmp (tokp, "-*") == 0) { tmp_era.era_out.year[1] = _RWSTD_INT_MIN; tmp_era.era_out.month[1] = _RWSTD_CHAR_MIN;