From: Ballard J. <sac...@ho...> - 2004-02-18 02:14:14
|
Index: COLINUX_0/src/colinux/user/config.c=0A= diff -u COLINUX_0/src/colinux/user/config.c:1.1.1.2 = COLINUX_0/src/colinux/user/config.c:1.2=0A= --- COLINUX_0/src/colinux/user/config.c:1.1.1.2 Sat Feb 14 18:55:37 2004=0A= +++ COLINUX_0/src/colinux/user/config.c Tue Feb 17 17:51:01 2004=0A= @@ -118,24 +118,40 @@=0A= =0A= co_rc_t co_load_config_memory(co_config_t *out_config, mxml_element_t = *element)=0A= {=0A= - int i;=0A= - char *size =3D "";=0A= + int i ;=0A= + char *s =3D "" ;=0A= + unsigned long x ;=0A= + unsigned long l ;=0A= =0A= for (i=3D0; i < element->num_attrs; i++) {=0A= mxml_attr_t *attr =3D &element->attrs[i];=0A= =0A= if (strcmp(attr->name, "size") =3D=3D 0)=0A= - size =3D attr->value;=0A= + s =3D attr->value;=0A= }=0A= =0A= - if (size =3D=3D NULL) {=0A= - co_debug("Invalid memory element: bad size\n");=0A= + if ( s =3D=3D NULL ) {=0A= + printf("Invalid memory element: bad memory specification\n") ;=0A= return CO_RC(ERROR);=0A= }=0A= =0A= - out_config->ram_size =3D atoi(size);=0A= + if( *s < '0' || *s > '9' )=0A= + goto co_load_config_memory_invalid_size_format ;=0A= + x =3D (unsigned char)( *s - '0' ) ;=0A= + while( *(++s) ) {=0A= + if( *s < '0' || *s > '9' )=0A= + goto co_load_config_memory_invalid_size_format ;=0A= + if( ( x =3D ( l =3D x ) * 10 + (unsigned char)( *s - '0' ) ) < l )=0A= + goto co_load_config_memory_invalid_size_format ;=0A= + }=0A= +=0A= + out_config->ram_size =3D x ;=0A= =0A= return CO_RC(OK);=0A= +=0A= + co_load_config_memory_invalid_size_format:=0A= + printf( "Invalid memory element: invalid size format\n" ) ;=0A= + return CO_RC(ERROR) ;=0A= }=0A= =0A= co_rc_t co_load_config(char *text, co_config_t *out_config)=0A= |