Advertisement
maxpolk

[patch] cygwin-apps/run 1.0.3

Nov 30th, 2013
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. Index: ChangeLog
  2. ===================================================================
  3. RCS file: /cvs/cygwin-apps/run/ChangeLog,v
  4. retrieving revision 1.25
  5. diff -u -p -r1.25 ChangeLog
  6. --- ChangeLog 24 Jul 2013 22:24:19 -0000 1.25
  7. +++ ChangeLog 30 Nov 2013 21:19:35 -0000
  8. @@ -1,3 +1,8 @@
  9. +2013-11-30 Max Polk <maxpolk@gmail.com>
  10. +
  11. + * src/run.c: account for NULL argv list terminator. Surround
  12. + arguments with double quotes in case of space in original arg.
  13. +
  14. 2013-07-24 Charles Wilson <cygwin@cwilson.fastmail.fm>
  15.  
  16. Release 1.3.0. Massive refactoring.
  17. Index: src/run.c
  18. ===================================================================
  19. RCS file: /cvs/cygwin-apps/run/src/run.c,v
  20. retrieving revision 1.17
  21. diff -u -p -r1.17 run.c
  22. --- src/run.c 24 Jul 2013 22:10:53 -0000 1.17
  23. +++ src/run.c 30 Nov 2013 21:19:35 -0000
  24. @@ -252,7 +252,8 @@ realMain(int argc, char* argv[])
  25. newargv = run2_dupargv (argv);
  26. /* discard newargv[0] and shift up */
  27. free (newargv[0]);
  28. - for (newargc = 1; newargc < argc; newargc++)
  29. + /* Account for NULL array terminator */
  30. + for (newargc = 1; newargc <= argc; newargc++)
  31. newargv[newargc-1] = newargv[newargc];
  32. newargc = argc - 1;
  33.  
  34. @@ -576,7 +577,7 @@ build_cmdline(char* new_cmdline, char* e
  35.  
  36. char_cnt = strlen(exec);
  37. for (i = 1; i < argc; i++)
  38. - char_cnt += strlen(argv[i]);
  39. + char_cnt += strlen(argv[i]) + 2; /* add two for quotes */
  40. if (char_cnt > MAX_ARGS*MAX_PATH) /* then we ran out of room */
  41. run2_error(EXIT_FAILURE, 0, "command line too long -\n%s",new_cmdline);
  42.  
  43. @@ -584,7 +585,10 @@ build_cmdline(char* new_cmdline, char* e
  44. for (i = 1; i < argc; i++)
  45. {
  46. strcat(new_cmdline," ");
  47. + /* Place each argument in quotes */
  48. + strcat(new_cmdline,"\"");
  49. strcat(new_cmdline,argv[i]);
  50. + strcat(new_cmdline,"\"");
  51. }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement