Revision 2f619698 linux-user/linuxload.c

b/linux-user/linuxload.c
124 124
    sp -= (argc + 1) * n;
125 125
    argv = sp;
126 126
    if (push_ptr) {
127
        sp -= n; tputl(sp, envp);
128
        sp -= n; tputl(sp, argv);
127
        /* FIXME - handle put_user() failures */
128
        sp -= n;
129
        put_user_ual(envp, sp);
130
        sp -= n;
131
        put_user_ual(argv, sp);
129 132
    }
130
    sp -= n; tputl(sp, argc);
133
    sp -= n;
134
    /* FIXME - handle put_user() failures */
135
    put_user_ual(argc, sp);
131 136

  
132 137
    while (argc-- > 0) {
133
        tputl(argv, stringp); argv += n;
138
        /* FIXME - handle put_user() failures */
139
        put_user_ual(stringp, argv);
140
        argv += n;
134 141
        stringp += target_strlen(stringp) + 1;
135 142
    }
136
    tputl(argv, 0);
143
    /* FIXME - handle put_user() failures */
144
    put_user_ual(0, argv);
137 145
    while (envc-- > 0) {
138
        tputl(envp, stringp); envp += n;
146
        /* FIXME - handle put_user() failures */
147
        put_user_ual(stringp, envp);
148
        envp += n;
139 149
        stringp += target_strlen(stringp) + 1;
140 150
    }
141
    tputl(envp, 0);
151
    /* FIXME - handle put_user() failures */
152
    put_user_ual(0, envp);
142 153

  
143 154
    return sp;
144 155
}

Also available in: Unified diff