Unified · Split
| @@ -220,9 +220,6 @@ mntversion(Chan *c, char *version, int msize, int returnlen) · 219 unmodified lines | ||
| 220 | 220 | m->msize = f.msize; |
| 221 | 221 | unlock(&mntalloc.lk); |
| 222 | 222 | |
| 223 | − poperror(); /* msg */ | |
| 224 | − free(msg); | |
| 225 | − | |
| 226 | 223 | lock(&m->lk); |
| 227 | 224 | m->queue = 0; |
| 228 | 225 | m->rip = 0; |
| @@ -232,16 +229,19 @@ mntversion(Chan *c, char *version, int msize, int returnlen) · 3 unmodified lines | ||
| 232 | 229 | m->c = c; |
| 233 | 230 | unlock(&m->lk); |
| 234 | 231 | |
| 232 | + poperror(); /* msg */ | |
| 235 | 233 | poperror(); /* c */ |
| 236 | 234 | qunlock(&c->umqlock); |
| 237 | 235 | |
| 238 | 236 | k = strlen(f.version); |
| 239 | 237 | if(returnlen > 0){ |
| 240 | − if(returnlen < k) | |
| 238 | + if(returnlen < k){ | |
| 239 | + free(msg); | |
| 241 | 240 | error(Eshort); |
| 241 | + } | |
| 242 | 242 | memmove(version, f.version, k); |
| 243 | 243 | } |
| 244 | − | |
| 244 | + free(msg); | |
| 245 | 245 | return k; |
| 246 | 246 | } |
| 247 | 247 | |