View | Details | Raw Unified | Return to bug 25954
Collapse All | Expand All

(-)a/tftp/tftp.c (-5 / +11 lines)
Lines 52-58 sigjmp_buf toplevel; Link Here
52
sigjmp_buf timeoutbuf;
52
sigjmp_buf timeoutbuf;
53
53
54
static void nak(int, const char *);
54
static void nak(int, const char *);
55
static int makerequest(int, const char *, struct tftphdr *, const char *);
55
static int makerequest(int, const char *, void *, const char *);
56
static void printstats(const char *, unsigned long);
56
static void printstats(const char *, unsigned long);
57
static void startclock(void);
57
static void startclock(void);
58
static void stopclock(void);
58
static void stopclock(void);
Lines 276-292 void tftp_recvfile(int fd, const char *name, const char *mode) Link Here
276
276
277
static int
277
static int
278
makerequest(int request, const char *name,
278
makerequest(int request, const char *name,
279
            struct tftphdr *tp, const char *mode)
279
            void *p, const char *mode)
280
{
280
{
281
    char *cp;
281
    char *cp;
282
    struct tftphdr *tp = p;
283
    size_t namelen, modelen;
282
284
283
    tp->th_opcode = htons((u_short) request);
285
    tp->th_opcode = htons((u_short) request);
284
    cp = (char *)&(tp->th_stuff);
286
    cp = (char*)p + offsetof(struct tftphdr, th_stuff);
287
    namelen = strlen(name);
288
    modelen = strlen(mode);
289
    if (namelen + modelen + 2 > SEGSIZE)
290
	    perror("Filename is too long");
285
    strcpy(cp, name);
291
    strcpy(cp, name);
286
    cp += strlen(name);
292
    cp += namelen;
287
    *cp++ = '\0';
293
    *cp++ = '\0';
288
    strcpy(cp, mode);
294
    strcpy(cp, mode);
289
    cp += strlen(mode);
295
    cp += modelen;
290
    *cp++ = '\0';
296
    *cp++ = '\0';
291
    return (cp - (char *)tp);
297
    return (cp - (char *)tp);
292
}
298
}

Return to bug 25954