X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flibpspp%2Fstr.c;h=7e722c17e6b92602798725e3bdd618327a46691f;hb=b7da2544e1d967b9c3afff6cc93686ddeef09b59;hp=c630cf9ada761aa89b260197ca0718b1e9ff4344;hpb=0bc1a5a1eebddc094acd9eb181aa9dcaddef2f5f;p=pspp-builds.git diff --git a/src/libpspp/str.c b/src/libpspp/str.c index c630cf9a..7e722c17 100644 --- a/src/libpspp/str.c +++ b/src/libpspp/str.c @@ -270,17 +270,22 @@ str_format_26adic (unsigned long int number, char buffer[], size_t size) while (number-- > 0) { if (length >= size) - return false; + goto overflow; buffer[length++] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[number % 26]; number /= 26; } if (length >= size) - return false; + goto overflow; buffer[length] = '\0'; buf_reverse (buffer, length); return true; + +overflow: + if (length > 0) + buffer[0] = '\0'; + return false; } /* Sets the SIZE bytes starting at BLOCK to C,