X-Git-Url: https://git.gag.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Fscheme%2Fao_scheme_string.c;fp=src%2Fscheme%2Fao_scheme_string.c;h=2c6d096000d43d759c9d7a276ad5ad1c88dcafcc;hb=4b52fc6eea9a478cb3dd42dcd32c92838df39734;hp=c49e1e325c9872a97634614afdf6a6669d8774bc;hpb=f8a967959b2f5ca3486ab3422f30fe4ad4ba17a8;p=fw%2Faltos diff --git a/src/scheme/ao_scheme_string.c b/src/scheme/ao_scheme_string.c index c49e1e32..2c6d0960 100644 --- a/src/scheme/ao_scheme_string.c +++ b/src/scheme/ao_scheme_string.c @@ -47,6 +47,8 @@ ao_scheme_string_alloc(int len) { struct ao_scheme_string *s; + if (len < 0) + return NULL; s = ao_scheme_alloc(len + 2); if (!s) return NULL; @@ -182,8 +184,8 @@ ao_scheme_string_write(FILE *out, ao_poly p, bool write) fputs("\\\\", out); break; default: - if (c < ' ') - fprintf(out, "\\%03o", c); + if ((uint8_t) c < ' ') + fprintf(out, "\\%03o", (uint8_t) c); else putc(c, out); break;