X-Git-Url: http://wagner.pp.ru/gitweb/?a=blobdiff_plain;f=src%2Fcharsets.c;h=a81ceebe1a1bb6f8f7e1d38a1379a8c85e7fac77;hb=e2020c47c14a8a03f44734a6c0adc48fb5129c2f;hp=4ee0f4c09902a63ff792451b1584d7b9461ec5a2;hpb=a79f2377217c571396074fccf360e01032cd77bf;p=oss%2Fcatdoc.git diff --git a/src/charsets.c b/src/charsets.c index 4ee0f4c..a81ceeb 100644 --- a/src/charsets.c +++ b/src/charsets.c @@ -46,13 +46,14 @@ CHARSET make_reverse_map(short int *charset) { int i,j,k,l; short int *p; if (! charset) { + free(newmap); return NULL; } for (i=0;i<256;i++) { k= charset[i]; j= (unsigned)k>>8; if (!newmap[j]) { - newmap[j] = malloc(sizeof(short int *)*256); + newmap[j] = (short int *)malloc(sizeof(short int)*256); if (!newmap[j]) { fprintf(stderr,"Insufficient memory for charset\n"); exit(1); @@ -72,7 +73,7 @@ CHARSET make_reverse_map(short int *charset) { short int * read_charset(const char *filename) { char *path; FILE *f; - short int *new=calloc(sizeof(short int),256); + short int *new; int c; long int uc; path= find_file(stradd(filename,CHARSET_EXT),charset_path); @@ -89,6 +90,7 @@ short int * read_charset(const char *filename) { if (input_buffer) setvbuf(f,input_buffer,_IOFBF,FILE_BUFFER); /* defaults */ + new = calloc(sizeof(short int),256); for (c=0;c<32;c++) { new[c]=c; }