[Gnucash-changes] r12989 - gnucash/trunk/src/report - Check for invalid options tables when loading reports.

Derek Atkins warlord at MIT.EDU
Fri Jan 27 17:54:57 EST 2006


Quoting Chris Shoemaker <c.shoemaker at cox.net>:

> There's something a bit strange here, too.  We have in
> gnc_plugin_page_report_recreate_page():
>
>        option_string = g_key_file_get_string(key_file, group_name,
>                                              SCHEME_OPTIONS, &error);
>        if (error) {
>          g_warning("error reading group %s key %s: %s",
>                    group_name, SCHEME_OPTIONS, error->message);
>          LEAVE("bad value");
>          return NULL;
>        }
>        scm_id = scm_c_eval_string(option_string);
>        if (!scm_integer_p(scm_id)) {
>          g_free(option_string);
>          LEAVE("report id not an integer");
>          return NULL;
>        }
>
>        report_id = scm_num2int(scm_id, SCM_ARG1, __FUNCTION__);
>
>
> Now, since the option string I created evaluates to #f, you'd _really_
> think this would trigger the "report id not an integer" error path.
>
> But, no.  Instead:
> ERROR: In procedure gnc_plugin_page_report_recreate_page:
> ERROR: Wrong type argument in position 1: #f

I wonder if that's happening in scm_integer_p() or in scm_num2int()?
I suspect the latter, but I'm not sure.  You might need to just compare
against SCM_BOOL_F first..

> And a clean crash.  Not very nice.  :(

No, it's not.  :(

> -chris

-derek

-- 
       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL: http://web.mit.edu/warlord/    PP-ASEL-IA     N1NWH
       warlord at MIT.EDU                        PGP key available



More information about the gnucash-devel mailing list