| | 274 | | | | upkstralloc(mp, ss) | | | 275 | | | | struct pmsg *mp; | | | 276 | | | | char **ss; | | | 277 | | | | { | | | 278 | | | | int cc; | | | 279 | | | | int l; | | | 280 | | | | | | | 281 | | | | if (!(cc = (mp->m_codef->dec_int) (mp, (void*)&l, 1, 1, sizeof(int)))) { | | | 282 | | | | if (l <= 0) | | | 283 | | | | cc = PvmNoData;
| | | 284 | | | | else { | | | 285 | | | | *ss = TALLOC(l, char, "ustr");
| | | 286 | | | | if ((cc = (mp->m_codef->dec_byte) (mp, (void*)*ss, l, 1, 1)) < 0) { | | | 287 | | | | PVM_FREE(*ss);
| | | 288 | | | | *ss = 0; | | | 289 | | | | } | | | 290 | | | | } | | | 291 | | | | } | | | 292 | | | | return cc; | | where <= 4095 | 293 | | | | } |
| | 1109 | | || upkint(mp, &wxp->w_veclen) | | | 1110 | | || upkint(mp, &wxp->w_argc)) | | | 1111 | | goto bad; | | | 1112 | | | | | 1113 | | if (wxp->w_veclen < 1) | | | 1114 | | goto bad; | | | 1115 | | | | | 1116 | | wxp->w_argv = TALLOC(wxp->w_argc + 1, char*, "argv");
| | | 1117 | | BZERO((char*)wxp->w_argv, (wxp->w_argc + 1) * sizeof(char*));
| | | 1118 | | for (i = 0; i < wxp->w_argc; i++) | | | 1119 | | if (upkstralloc(mp, &wxp->w_argv[i])) | | | 1120 | | goto bad; | | | 1121 | | | | | 1122 | | if (upkuint(mp, &wxp->w_outtid) | | | 1123 | | || upkuint(mp, &wxp->w_outctx) | | | 1124 | | || upkuint(mp, &wxp->w_outtag) | | | 1125 | | || upkuint(mp, &wxp->w_trctid) | | | 1126 | | || upkuint(mp, &wxp->w_trcctx) | | | 1127 | | || upkuint(mp, &wxp->w_trctag)) | | | 1128 | | goto bad; | | | 1129 | | | | | 1130 | | | | | 1131 | | | | | 1132 | | | | | 1133 | | | | where <= 4095 | 1134 | | ptr = where; | | ptr <= 4095 | 1135 | | while ( *ptr != ':' && *ptr != '\0' ) |
|