#1544: disallow empty value strings when setting numbers in CCTK_ParameterSet --------------------+------------------------------------------------------- Reporter: rhaas | Owner: Type: defect | Status: new Priority: minor | Milestone: Component: Cactus | Version: development version Keywords: | --------------------+------------------------------------------------------- Currently due to the way strtol and strtod work one can do {{{ CCTK_ParameterSet("cctk_itlast", "Cactus", "") }}} which return 0 (all is fine) and sets cctk_itlast to 0 (rather than failing with -6 "invalid string").
The attached patch checks that the parameter value string is not empty.
This cannot happen from inside of parfiles since the parser disallows it. It can happen when using the Trigger thorn.
#1544: disallow empty value strings when setting numbers in CCTK_ParameterSet ---------------------+------------------------------------------------------ Reporter: rhaas | Owner: Type: defect | Status: review Priority: minor | Milestone: Component: Cactus | Version: development version Resolution: | Keywords: ---------------------+------------------------------------------------------ Changes (by rhaas):
* status: new => review
#1544: disallow empty value strings when setting numbers in CCTK_ParameterSet ---------------------+------------------------------------------------------ Reporter: rhaas | Owner: Type: defect | Status: review Priority: minor | Milestone: Component: Cactus | Version: development version Resolution: | Keywords: ---------------------+------------------------------------------------------
Comment (by eschnett):
According to the strtol documentation: {{{ If endptr is not NULL, strtol() stores the address of the first invalid character in *endptr. If there were no digits at all, however, strtol() stores the original value of str in *endptr. (Thus, if *str is not `\0' but **endptr is `\0' on return, the entire string was valid.) }}} Thus it should not be necessary to check whether the whole string consists of whitespace.
#1544: disallow empty value strings when setting numbers in CCTK_ParameterSet ---------------------+------------------------------------------------------ Reporter: rhaas | Owner: Type: defect | Status: review Priority: minor | Milestone: Component: Cactus | Version: development version Resolution: | Keywords: ---------------------+------------------------------------------------------
Comment (by rhaas):
Much simpler. Many thanks for th suggestion. Attached please find an updated patch.
#1544: disallow empty value strings when setting numbers in CCTK_ParameterSet ---------------------+------------------------------------------------------ Reporter: rhaas | Owner: Type: defect | Status: reviewed_ok Priority: minor | Milestone: Component: Cactus | Version: development version Resolution: | Keywords: ---------------------+------------------------------------------------------ Changes (by eschnett):
* status: review => reviewed_ok
Comment:
Please apply.
#1544: disallow empty value strings when setting numbers in CCTK_ParameterSet ---------------------+------------------------------------------------------ Reporter: rhaas | Owner: Type: defect | Status: closed Priority: minor | Milestone: Component: Cactus | Version: development version Resolution: fixed | Keywords: ---------------------+------------------------------------------------------ Changes (by rhaas):
* status: reviewed_ok => closed * resolution: => fixed
Comment:
Applied as rev 5083 of the flesh.
trac@lists.einsteintoolkit.org