Mercurial > sdl-ios-xcode
comparison src/cdrom/osf/SDL_syscdrom.c @ 1379:c0a74f199ecf
Use only safe string functions
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sun, 19 Feb 2006 23:46:34 +0000 |
parents | 19418e4422cb |
children | d910939febfa |
comparison
equal
deleted
inserted
replaced
1378:dc0e13e7e1ae | 1379:c0a74f199ecf |
---|---|
117 } | 117 } |
118 } | 118 } |
119 | 119 |
120 /* Add this drive to our list */ | 120 /* Add this drive to our list */ |
121 i = SDL_numcds; | 121 i = SDL_numcds; |
122 SDL_cdlist[i] = (char *)SDL_malloc(SDL_strlen(drive)+1); | 122 SDL_cdlist[i] = SDL_strdup(drive); |
123 if ( SDL_cdlist[i] == NULL ) { | 123 if ( SDL_cdlist[i] == NULL ) { |
124 SDL_OutOfMemory(); | 124 SDL_OutOfMemory(); |
125 return; | 125 return; |
126 } | 126 } |
127 | |
128 SDL_strcpy(SDL_cdlist[i], drive); | |
129 SDL_cdmode[i] = stbuf->st_rdev; | 127 SDL_cdmode[i] = stbuf->st_rdev; |
130 ++SDL_numcds; | 128 ++SDL_numcds; |
131 #ifdef DEBUG_CDROM | 129 #ifdef DEBUG_CDROM |
132 fprintf(stderr, "Added CD-ROM drive: %s\n", drive); | 130 fprintf(stderr, "Added CD-ROM drive: %s\n", drive); |
133 #endif | 131 #endif |
172 | 170 |
173 /* Look in the environment for our CD-ROM drive list */ | 171 /* Look in the environment for our CD-ROM drive list */ |
174 SDLcdrom = SDL_getenv("SDL_CDROM"); /* ':' separated list of devices */ | 172 SDLcdrom = SDL_getenv("SDL_CDROM"); /* ':' separated list of devices */ |
175 if ( SDLcdrom != NULL ) { | 173 if ( SDLcdrom != NULL ) { |
176 char *cdpath, *delim; | 174 char *cdpath, *delim; |
177 cdpath = SDL_malloc(SDL_strlen(SDLcdrom)+1); | 175 size_t len = SDL_strlen(SDLcdrom)+1; |
176 cdpath = SDL_stack_alloc(len); | |
178 if ( cdpath != NULL ) { | 177 if ( cdpath != NULL ) { |
179 SDL_strcpy(cdpath, SDLcdrom); | 178 SDL_strlcpy(cdpath, SDLcdrom, len); |
180 SDLcdrom = cdpath; | 179 SDLcdrom = cdpath; |
181 do { | 180 do { |
182 delim = SDL_strchr(SDLcdrom, ':'); | 181 delim = SDL_strchr(SDLcdrom, ':'); |
183 if ( delim ) { | 182 if ( delim ) { |
184 *delim++ = '\0'; | 183 *delim++ = '\0'; |
190 SDLcdrom = delim; | 189 SDLcdrom = delim; |
191 } else { | 190 } else { |
192 SDLcdrom = NULL; | 191 SDLcdrom = NULL; |
193 } | 192 } |
194 } while ( SDLcdrom ); | 193 } while ( SDLcdrom ); |
195 SDL_free(cdpath); | 194 SDL_stack_free(cdpath); |
196 } | 195 } |
197 | 196 |
198 /* If we found our drives, there's nothing left to do */ | 197 /* If we found our drives, there's nothing left to do */ |
199 if ( SDL_numcds > 0 ) { | 198 if ( SDL_numcds > 0 ) { |
200 return(0); | 199 return(0); |
224 #ifdef DEBUG_CDROM | 223 #ifdef DEBUG_CDROM |
225 fprintf(stderr, "cannot open dir: %s\n", checklist[i].dir); | 224 fprintf(stderr, "cannot open dir: %s\n", checklist[i].dir); |
226 #endif | 225 #endif |
227 } | 226 } |
228 } | 227 } |
229 | |
230 /* | |
231 SDLcdrom=SDL_malloc(sizeof(char) * 32); | |
232 SDL_strcpy(SDLcdrom,"/dev/rdisk/cdrom0c"); | |
233 SDL_cdlist[0] = SDLcdrom; | |
234 stat(SDLcdrom, &stbuf); | |
235 SDL_cdmode[0] = stbuf.st_rdev; | |
236 SDL_numcds = 1; | |
237 */ | |
238 return (0); | 228 return (0); |
239 } | 229 } |
240 | 230 |
241 static const char *SDL_SYS_CDName(int drive) | 231 static const char *SDL_SYS_CDName(int drive) |
242 { | 232 { |