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