Changeset 1152 in MondoRescue
- Timestamp:
- Feb 12, 2007, 11:49:41 PM (18 years ago)
- Location:
- branches/stable/mondo/src
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/stable/mondo/src/common/libmondo-archive-EXT.h
r543 r1152 41 41 char *filelist, char *fname, 42 42 int setno); 43 extern void setenv_mondo_ share(void);43 extern void setenv_mondo_var(void); -
branches/stable/mondo/src/common/libmondo-archive.c
r1147 r1152 14 14 #include <sys/ipc.h> 15 15 #include <stdarg.h> 16 #include <stdlib.h> 16 17 #include <unistd.h> 17 18 … … 3939 3940 /* @} - end of utilityGroup */ 3940 3941 3941 void setenv_mondo_share(void) { 3942 3943 setenv("MONDO_SHARE", MONDO_SHARE, 1); 3944 setenv("MONDORESTORECFG", MONDORESTORECFG, 1); 3945 setenv("MONDO_CACHE", MONDO_CACHE, 1); 3942 void setenv_mondo_var(void) { 3943 3944 char *tmp = NULL; 3945 char *p = NULL; 3946 char *path_min = "/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin"; 3947 3948 mr_setenv("MONDO_SHARE",MONDO_SHARE); 3949 mr_setenv("MONDORESTORECFG",MONDORESTORECFG); 3950 mr_setenv("MONDO_CACHE",MONDO_CACHE); 3951 3952 if ((p = getenv("PATH")) == NULL) { 3953 mr_asprintf(&p,path_min); 3954 } 3955 mr_asprintf(&tmp, "%s:%s",p, path_min); 3956 mr_free(p); 3957 mr_setenv("PATH",tmp); 3958 mr_free(tmp); 3946 3959 } -
branches/stable/mondo/src/common/libmondo-tools.c
r1144 r1152 197 197 198 198 199 char *get_architecture( )199 char *get_architecture(void) 200 200 { 201 201 #ifdef __IA32__ … … 210 210 211 211 212 double get_kernel_version( )212 double get_kernel_version(void) 213 213 { 214 214 char *p, tmp[200]; … … 244 244 * @return number of seconds since the epoch. 245 245 */ 246 long get_time( )246 long get_time(void) 247 247 { 248 248 return (long) time((void *) 0); -
branches/stable/mondo/src/include/mr_mem.h
r1133 r1152 22 22 #define mr_getline(x,y,z) mr_getline_int(x,y,z,__LINE__,__FILE__) 23 23 #define mr_malloc(x) mr_malloc_int((size_t)x,__LINE__,__FILE__) 24 #define mr_setenv(x,y) mr_setenv_int(x,y,__LINE__,__FILE__) 24 25 25 26 /* Internal function bringing debuging info … … 30 31 extern inline void mr_getline_int(char **lineptr, size_t *n, FILE *stream, int line, char *file); 31 32 extern inline void *mr_malloc_int(size_t size, int line, char *file); 33 extern inline mr_setenv_int(const char *name, const char *value, int line, char *file); 32 34 33 35 #endif /* MR_MEM_H */ -
branches/stable/mondo/src/lib/mr_mem.c
r1138 r1152 89 89 mr_asprintf_int(&alloc, line, file, orig); 90 90 } 91 92 /* 93 * Function that properly put a variable in the environment 94 */ 95 void mr_setenv_int(const char *name, const char *value, int line, char *file) { 96 97 if (name == NULL) { 98 mr_msg_int(1,line,file,"Unable to setenv a NULL variable\nExiting..."); 99 mr_exit(-1, "Unable to setenv a NULL variable"); 100 } 101 if (value == NULL) { 102 mr_msg_int(1,line,file,"Unable to affect NULL to %s\nExiting...", name); 103 mr_exit(-1, "Unable to affect a NULL variable"); 104 } 105 if (mr_setenv(name, value, 1) != 0) { 106 mr_msg_int(1,line,file,"Unable to put %s in environment", name); 107 mr_exit(-1,"Unable to put in environment"); 108 } 109 } -
branches/stable/mondo/src/mondoarchive/main.c
r1151 r1152 157 157 struct s_bkpinfo *bkpinfo; 158 158 struct stat stbuf; 159 char *tmp ;159 char *tmp = NULL; 160 160 int res, retval; 161 161 char *say_at_end; … … 178 178 179 179 malloc_libmondo_global_strings(); 180 malloc_string(tmp);181 180 malloc_string(say_at_end); 182 181 … … 194 193 bkpinfo = mr_malloc(sizeof(struct s_bkpinfo)); 195 194 196 /* make sure PATH environmental variable allows access to mkfs, fdisk, etc. */197 strncpy(tmp, getenv("PATH"), MAX_STR_LEN - 1);198 tmp[MAX_STR_LEN - 1] = '\0';199 if (strlen(tmp) >= MAX_STR_LEN - 33) {200 fatal_error201 ("Your PATH environmental variable is too long. Please shorten it.");202 }203 strcat(tmp, ":/sbin:/usr/sbin:/usr/local/sbin");204 setenv("PATH", tmp, 1);205 206 195 /* Add the ARCH environment variable for ia64 purposes */ 207 strncpy(tmp, get_architecture(), MAX_STR_LEN - 1); 208 tmp[MAX_STR_LEN - 1] = '\0'; 209 setenv("ARCH", tmp, 1); 196 setenv("ARCH", get_architecture(), 1); 210 197 211 198 /* Add MONDO_SHARE + others environment variable for mindi */ 212 setenv_mondo_ share();199 setenv_mondo_var(); 213 200 214 201 if (stat(MONDO_CACHE, &stbuf) != 0) { … … 247 234 if (argc == 4 && !strcmp(argv[1], "setfattr")) { 248 235 g_loglevel = 10; 249 // chdir("/tmp");250 236 g_text_mode = TRUE; 251 237 setup_newt_stuff(); … … 257 243 g_text_mode = TRUE; 258 244 setup_newt_stuff(); 245 malloc_string(tmp); 259 246 turn_wildcard_chars_into_literal_chars(tmp, argv[2]); 260 247 printf("in=%s; out=%s\n", argv[2], tmp); 248 mr_free(tmp); 261 249 finish(1); 262 250 } … … 276 264 if (argc == 4 && !strcmp(argv[1], "setfacl")) { 277 265 g_loglevel = 10; 278 // chdir("/tmp");279 266 g_text_mode = TRUE; 280 267 setup_newt_stuff(); … … 286 273 g_text_mode = TRUE; 287 274 setup_newt_stuff(); 275 malloc_string(tmp); 288 276 if (find_cdrw_device(tmp)) { 289 277 printf("Failed to find CDR-RW drive\n"); … … 297 285 printf("CD-ROM is at %s\n", tmp); 298 286 } 287 mr_free(tmp); 299 288 finish(0); 300 289 } … … 304 293 g_text_mode = TRUE; 305 294 setup_newt_stuff(); 295 malloc_string(tmp); 306 296 if (find_dvd_device(tmp, atoi(argv[2]))) { 307 297 printf("Failed to find DVD drive\n"); … … 309 299 printf("DVD is at %s\n", tmp); 310 300 } 301 mr_free(tmp); 311 302 finish(0); 312 303 } … … 380 371 res = verify_data(bkpinfo); 381 372 if (res < 0) { 382 sprintf(tmp, "%d difference%c found.", -res,373 mr_asprintf(&tmp, "%d difference%c found.", -res, 383 374 (-res != 1) ? 's' : ' '); 384 375 strcat(say_at_end, tmp); 385 376 log_to_screen(tmp); 377 mr_free(tmp); 386 378 res = 0; 387 379 } … … 427 419 } 428 420 log_to_screen(say_at_end); 429 sprintf(tmp, "umount %s/tmpfs", bkpinfo->tmpdir);421 mr_asprintf(&tmp, "umount %s/tmpfs", bkpinfo->tmpdir); 430 422 run_program_and_log_output(tmp, TRUE); 423 mr_free(tmp); 431 424 run_program_and_log_output(g_erase_tmpdir_and_scratchdir, TRUE); 432 425 … … 447 440 free_libmondo_global_strings(); 448 441 mr_free(say_at_end); 449 mr_free(tmp);450 442 mr_free(bkpinfo); 451 443
Note:
See TracChangeset
for help on using the changeset viewer.