From: Junio C Hamano Date: Fri, 19 Aug 2011 06:22:12 GMT Subject: Re: [PATCH 1/1] clone: replace relative paths in the alternates Message-ID: <7vy5yp53aj.fsf@alter.siamese.dyndns.org> In-Reply-To: <1313731396-10458-2-git-send-email-jason77.wang@gmail.com> Hui Wang writes: > + mapsz = xsize_t(st.st_size); > + map = xmmap(NULL, mapsz, PROT_READ, MAP_PRIVATE, fd, 0); > + close(fd); > + > + tmpbuf = mapsz > 4096 ? xmalloc(mapsz * 2) : xmalloc(mapsz + 4096); Where do these magic numbers come from, and what guarantee do we have that these magic numbers give safe upper bound for pathnames that are expanded to be absolute? Wouldn't it be a lot cleaner and much less error prone if you open the original, read from it with strbuf_readline(), convert the path using strbuf manipulation functions and write the resulting line out to the lockfile you obtained to update it, line by line?