don't assume memory allocations will succeed
This commit is contained in:
parent
751bb5bb66
commit
99a29eaf6b
9
ent.c
9
ent.c
@ -36,10 +36,16 @@ struct letters {
|
|||||||
struct letters* d;
|
struct letters* d;
|
||||||
size_t nodes,datasize;
|
size_t nodes,datasize;
|
||||||
|
|
||||||
|
void nomem() {
|
||||||
|
fprintf(stderr, "memory allocation failure!\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
void addword(struct letters** s,const char* t, void* pointer) {
|
void addword(struct letters** s,const char* t, void* pointer) {
|
||||||
size_t i;
|
size_t i;
|
||||||
if (!*s) {
|
if (!*s) {
|
||||||
*s=malloc(sizeof(**s));
|
*s=malloc(sizeof(**s));
|
||||||
|
if (!*s) nomem();
|
||||||
memset(*s,0,sizeof(**s));
|
memset(*s,0,sizeof(**s));
|
||||||
(*s)->liste[0].c='?';
|
(*s)->liste[0].c='?';
|
||||||
}
|
}
|
||||||
@ -122,7 +128,7 @@ void marshalhelper(struct letters* s) {
|
|||||||
void marshal(struct letters* s) {
|
void marshal(struct letters* s) {
|
||||||
fprintf(stderr,"nodes=%lu, datasize=%lu\n",nodes,datasize);
|
fprintf(stderr,"nodes=%lu, datasize=%lu\n",nodes,datasize);
|
||||||
heap=malloc((nodes+1)*sizeof(uint32_t)+datasize);
|
heap=malloc((nodes+1)*sizeof(uint32_t)+datasize);
|
||||||
if (!heap) return;
|
if (!heap) nomem();
|
||||||
marshaled=(uint32_t*)heap;
|
marshaled=(uint32_t*)heap;
|
||||||
marshaled[0]=nodes+1;
|
marshaled[0]=nodes+1;
|
||||||
data=heap+(nodes+1)*sizeof(uint32_t);
|
data=heap+(nodes+1)*sizeof(uint32_t);
|
||||||
@ -175,6 +181,7 @@ int main() {
|
|||||||
#endif
|
#endif
|
||||||
++s;
|
++s;
|
||||||
*cur=malloc(sizeof(**cur));
|
*cur=malloc(sizeof(**cur));
|
||||||
|
if (!*cur) nomem();
|
||||||
(*cur)->next=0;
|
(*cur)->next=0;
|
||||||
if (!((*cur)->entity=strdup(entity))) return 1;
|
if (!((*cur)->entity=strdup(entity))) return 1;
|
||||||
ul=0;
|
ul=0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user