28 Jul, 2011

1 commit

  • This patch removes the architecture specific implementation of
    version_string where possible. Some architectures use a special place
    and therefore we provide U_BOOT_VERSION_STRING definition and a common
    weak symbol version_string.

    Signed-off-by: Andreas Bießmann
    CC: Mike Frysinger
    CC: Peter Pan
    Acked-by: Mike Frysinger

    Andreas Bießmann
     

03 Feb, 2011

1 commit

  • After years of unsuccessful research I've finally shamelessly stolen other
    peoples intellectual properties to present the all-new and world-changing
    updated version command:
    -
    U-Boot>> version

    U-Boot 2010.12-00014-g7435056-dirty (Jan 18 2011 - 23:19:38)
    MyBoard
    gcc (GCC) 0.42 (Distro foobar)
    GNU ld (GNU Binutils) 0.314159265
    -
    May the toolchain bugs rest in peace.

    Signed-off-by: Alexander Holler

    Alexander Holler
     

05 Jul, 2010

1 commit

  • The hush shell dynamically allocates (and re-allocates) memory for the
    argument strings in the "char *argv[]" argument vector passed to
    commands. Any code that modifies these pointers will cause serious
    corruption of the malloc data structures and crash U-Boot, so make
    sure the compiler can check that no such modifications are being done
    by changing the code into "char * const argv[]".

    This modification is the result of debugging a strange crash caused
    after adding a new command, which used the following argument
    processing code which has been working perfectly fine in all Unix
    systems since version 6 - but not so in U-Boot:

    int main (int argc, char **argv)
    {
    while (--argc > 0 && **++argv == '-') {
    /* ====> */ while (*++*argv) {
    switch (**argv) {
    case 'd':
    debug++;
    break;
    ...
    default:
    usage ();
    }
    }
    }
    ...
    }

    The line marked "====>" will corrupt the malloc data structures and
    usually cause U-Boot to crash when the next command gets executed by
    the shell. With the modification, the compiler will prevent this with
    an
    error: increment of read-only location '*argv'

    N.B.: The code above can be trivially rewritten like this:

    while (--argc > 0 && **++argv == '-') {
    char *arg = *argv;
    while (*++arg) {
    switch (*arg) {
    ...

    Signed-off-by: Wolfgang Denk
    Acked-by: Mike Frysinger

    Wolfgang Denk
     

23 Nov, 2009

1 commit