Thanks; I committed these.
-- David

On 23-Apr-2013 5:09 AM, Gianfranco Costamagna wrote:

This is an example of patch I want to push.
This patch makes boinc build with hardening flags enabled, security flags too.
Not a big patch, but it will secure a little bit boinc, and expose some 
potentially wrong code.
I'm attaching the another patch too, for the same pourpose.
With this patch boinc builds cleanly

--- boinc-7.0.65+dfsg.orig/client/cs_account.cpp
+++ boinc-7.0.65+dfsg/client/cs_account.cpp
@@ -79,7 +79,7 @@ int PROJECT::write_account_file() {
      fprintf(f, "<project_preferences>\n%s</project_preferences>\n",
          project_prefs.c_str()
      );
-    fprintf(f, gui_urls.c_str());
+    fprintf(f, "%s" ,gui_urls.c_str());
      fprintf(f, "</account>\n");
      fclose(f);
      retval = boinc_rename(TEMP_ACCT_FILE_NAME, path);
--- boinc-7.0.65+dfsg.orig/client/cs_benchmark.cpp
+++ boinc-7.0.65+dfsg/client/cs_benchmark.cpp
@@ -365,7 +365,7 @@ bool CLIENT_STATE::cpu_benchmarks_poll()

      // if active tasks don't quit after 10 sec, give up on benchmark
      //
-    if (gstate.clock_change || now >= (cpu_benchmarks_start + 10.0) && 
active_tasks.is_task_executing()) {
+    if (gstate.clock_change || (now >= (cpu_benchmarks_start + 10.0) && 
active_tasks.is_task_executing())) {
          msg_printf(NULL, MSG_INTERNAL_ERROR,
              "Failed to stop applications; aborting CPU benchmarks"
          );
@@ -462,7 +462,7 @@ bool CLIENT_STATE::cpu_benchmarks_poll()
              }
              ndone++;
              if (benchmark_descs[i].error) {
-                msg_printf(0, MSG_INFO, benchmark_descs[i].error_str);
+                msg_printf(0, MSG_INFO, "%s", benchmark_descs[i].error_str);
                  had_error = true;
              }
          }
--- boinc-7.0.65+dfsg.orig/client/main.cpp
+++ boinc-7.0.65+dfsg/client/main.cpp
@@ -80,7 +80,7 @@ void log_message_startup(const char* msg
          msg
      );
      if (!gstate.executing_as_daemon) {
-        fprintf(stdout, evt_msg);
+        fprintf(stdout, "%s", evt_msg);
      } else {
  #ifdef _WIN32
          LogEventInfoMessage(evt_msg);
@@ -89,7 +89,7 @@ void log_message_startup(const char* msg
  #elif defined (ANDROID)
          __android_log_print(ANDROID_LOG_INFO, "BOINC", evt_msg);
  #else
-        syslog(LOG_DAEMON|LOG_INFO, evt_msg);
+        syslog(LOG_DAEMON|LOG_INFO, "%s", evt_msg);
  #endif
      }
  }
@@ -121,7 +121,7 @@ void log_message_error(const char* msg)
  #elif defined (ANDROID)
          __android_log_print(ANDROID_LOG_ERROR, "BOINC", evt_msg);
  #else
-        syslog(LOG_DAEMON|LOG_ERR, evt_msg);
+        syslog(LOG_DAEMON|LOG_ERR, "%s", evt_msg);
  #endif
      }
  }
@@ -143,7 +143,7 @@ void log_message_error(const char* msg,
  #elif defined (ANDROID)
          __android_log_print(ANDROID_LOG_ERROR, "BOINC", evt_msg);
  #else
-        syslog(LOG_DAEMON|LOG_ERR, evt_msg);
+        syslog(LOG_DAEMON|LOG_ERR, "%s", evt_msg);
  #endif
      }
  }
--- boinc-7.0.65+dfsg.orig/client/main.cpp
+++ boinc-7.0.65+dfsg/client/main.cpp
@@ -112,7 +112,7 @@ void log_message_error(const char* msg)
      );
  #endif
      if (!gstate.executing_as_daemon) {
-        fprintf(stderr, evt_msg);
+        fprintf(stderr, "%s", evt_msg);
      } else {
  #ifdef _WIN32
          LogEventErrorMessage(evt_msg);
@@ -134,7 +134,7 @@ void log_message_error(const char* msg,
          msg, error_code
      );
      if (!gstate.executing_as_daemon) {
-        fprintf(stderr, evt_msg);
+        fprintf(stderr, "%s", evt_msg);
      } else {
  #ifdef _WIN32
          LogEventErrorMessage(evt_msg);
--- boinc-7.0.65+dfsg.orig/client/work_fetch.cpp
+++ boinc-7.0.65+dfsg/client/work_fetch.cpp
@@ -784,7 +784,7 @@ void WORK_FETCH::write_request(FILE* f,
      if (log_flags.work_fetch_debug) {
          char buf[256];
          request_string(buf);
-        msg_printf(p, MSG_INFO, buf);
+        msg_printf(p, MSG_INFO, "%s", buf);
      }
  }





Gianfranco



----- Messaggio originale -----
Da: Oliver Bock <[email protected]>
A: Gianfranco Costamagna <[email protected]>; David Anderson 
<[email protected]>
Cc: "[email protected]" <[email protected]>
Inviato: Martedì 23 Aprile 2013 14:00
Oggetto: Re: [boinc_dev] boinc_dev Digest, Vol 107, Issue 6

Hi guys,

On 4/23/13 13:45 , Gianfranco Costamagna wrote:
  Hi David, I'm interested in helping on boinc side, anyway I don't
  think I'll have time to implement new features. I just want to fix
  bugs on stable releases, maybe without asking everytime to you for
  accepting and pushing patches...

  I'm doing a big patch for making it build with boinc hardening flags
  enabled, I don't know how much time it will take, let me know if I
  can upload it or not, otherwise I'll send it to you with the old
  fashioned way :)

May I suggest three things:

1) If you get direct push access from David, please push your changes
into a dedicated topic/feature branch. This way people can test your
patches without disturbing master. Eventually your branch can be
signed-off and merged.

2) If not, you could publish your patches (effectively your clone)
elsewhere, e.g. on GitHub, such that people can easily fetch, test,
sign-off and merge your branch.

3) If you send your patches via mail, please use "git format-patch" to
retain their meta information (David: use "git am" to apply them, or
reject them, see below).


Gianfranco: please make sure your patches are committed separately such
that they could be cherry-picked if needed.

David: if you can't sign-off on a patch as is, please let Gianfranco fix
it, then sign-off and merge his fixed/final version.


Best,
Oliver
_______________________________________________
boinc_dev mailing list
[email protected]
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.

Reply via email to