X-Git-Url: https://git.deb.at/w?a=blobdiff_plain;f=misc.c;h=225d1563f9e048b981bff605bb7283e6ad9c189e;hb=173dbfc5de56d2bf7d5ff2e01f7e54cfbebcff21;hp=eae1e90178b37ee344fa4f16766936118b6a4137;hpb=12a57d9405d7910566d5ff888d743d29b0716554;p=pkg%2Fabook.git diff --git a/misc.c b/misc.c index eae1e90..225d156 100644 --- a/misc.c +++ b/misc.c @@ -123,10 +123,13 @@ mkstr (const char *format, ... ) format, ap); MY_VA_END; - if (n > -1) + if (n > -1 && n < size) return buffer; - size *= 2; + if (n > -1) + size = n + 1; + else + size *= 2; buffer = #ifdef ABOOK_SRC @@ -229,7 +232,7 @@ getaline(FILE *f) len = 0; size = thres; - buf = abook_malloc(size); + buf = (char *)abook_malloc(size); while (fgets(buf+len, size-len, f) != NULL) { len += strlen(buf+len);