[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Looking for a temporary account on Alpha



On Fri, Feb 23, 2007 at 10:54:06AM +0100, Frank B. Brokken wrote:
> Falk Hueffner filed a bug (Bug#412003) against the 2.10 release of the Yodl
> package. He detected that the latest version did not run correctly on the
> Alpha (see, e.g.,
> http://buildd.debian.org/fetch.cgi?pkg=yodl&arch=alpha&ver=2.10-1&stamp=1171904919)

> The problem I'm now confronted with is that as far as I know nobody in my
> environment uses the Alpha running Debian Linux. So I wonder if there is a
> list member who *does* operate an Alpha and is willing and able to offer me a 
> (temporary) account so I can research the problem's cause.

Sorry, can't give you an account, but I can point at the broken code:

void gram_DEFINEMACRO()
{
    register char *name;
    size_t nargs;

    parser_push_fun("DEFINEMACRO");

    name  = parser_name_parlist(&parser,  true);

    if (parser_number_parlist(&parser, (int *)&nargs, true) == SUCCESS)
    {
        char *def   = parser_parlist(&parser, COLLECT_SET);

        if ((size_t)nargs > 9 + 26 + 26)          /* 1-9, a-z, A-Z    */
        {
[...]

You can't take a variable of type size_t, pass its address to a function
that takes an argument of type int*, and count on getting a meaningful
result back.

Based on the usage in this function, I don't see any reason why it should be
size_t at all.  Changing nargs to an int is sufficient to fix the build
failure on my alpha.

Cheers,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
vorlon@debian.org                                   http://www.debian.org/



Reply to: